2017-09-13 30 views
1

我將一個文件保存爲包含烏克蘭字符的Unicode文本,並使用SSIS將其成功加載到登臺表。當插入表格時,烏克蘭字符更改爲問號

像這樣:

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

但是當我將它移動到它更改爲其他表:

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

我使用的查詢:

insert into finaltable 
(
column1 
) 

select column1 from staging table. 

整理:Latin1_General_CI_AS

我該如何糾正這個錯誤?

回答

1

在表中使用nvarchar,並且在插入語句中鍵入字符串時,將N放在前面,如N'your string'。考慮到排序問題,請考慮更改排序規則,請參閱this問題。

+0

我的確如此。 N'[DESC]',但它在列中插入DESC。 –

+0

@RohiniMathur是的,它就像這樣 – Sami

+0

我已經將數據類型更改爲nvarchar和N'DESC',但不是列值,而是插入字符串'DESC'。請建議。 –

4

在這裏你可以看到VARCHARNVARCHAR數據類型之間的尊重:

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

SELECT @Non_Unicode_Var AS NonUnicodeColumn, @Unicode_Var AS UnicodeColumn; 

結果:

​​

所以,你需要將數據類型更改爲NVARCHAR數據類型,然後將您的數據到桌上。

相關問題