2017-09-13 3 views
1

J'ai un fichier enregistré sous forme de texte Unicode contenant des caractères ukrainiens et il a été chargé avec succès dans la table de transfert à l'aide de SSIS.Caractère ukrainien remplacé par un point d'interrogation lors de l'insertion dans la table

Comme ceci:

"Колодки тормозные дисковые, комплект" 
Колодки тормозные 
"Колодки тормозные дисковые, комплект" 
This is Test 

Mais quand je me déplace à autre table, il change à:

"??????? ????????? ????????, ????????" 
??????? ????????? 
"??????? ????????? ????????, ????????" 
This is Test 

La requête je:

insert into finaltable 
(
column1 
) 

select column1 from staging table. 

Collation: Latin1_General_CI_AS

Comment puis-je corriger cette erreur?

Répondre

1

Utilisez nvarchar dans votre table et lorsque vous tapez vos chaînes dans l'instruction d'insertion mettez N devant, comme N'your chaîne '. Pensez également à modifier votre classement en raison de problèmes de tri, reportez-vous à la question this.

+0

J'ai fait comme ça. N '[DESC]', mais il insère DESC dans la colonne. –

+0

@RohiniMathur Oui, c'est comme ça – Sami

+0

J'ai changé le type de données en nvarchar et N'DESC 'mais au lieu de la valeur de la colonne, c'est l'insertion de la chaîne' DESC '. Veuillez suggérer. –

4

Ici vous pouvez voir la déférence entre VARCHAR et NVARCHAR types de données:

DECLARE @Non_Unicode_Var VARCHAR (MAX) = 'Колодки тормозные дисковые, комплект'; 
DECLARE @Unicode_Var NVARCHAR (MAX) = N'Колодки тормозные дисковые, комплект'; 

SELECT @Non_Unicode_Var AS NonUnicodeColumn, @Unicode_Var AS UnicodeColumn; 

Résultat:

+--------------------------------------+--------------------------------------+ 
|   NonUnicodeColumn   |   UnicodeColumn    | 
+--------------------------------------+--------------------------------------+ 
| ??????? ????????? ????????, ???????? | Колодки тормозные дисковые, комплект | 
+--------------------------------------+--------------------------------------+ 

, vous avez besoin de changer le type de données à NVARCHAR type de données, puis insérez vos données à la table.