Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

sql - Ukrainian character change to question mark when insert to table

I have a file saved as Unicode text containing Ukrainian characters, and it got loaded successfully to staging table using SSIS.

Like this:

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

But when I am moving it to other table it changes to:

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

The query I used:

insert into finaltable
(
column1
)

select column1 from staging table.

Collation: Latin1_General_CI_AS

How can I rectify this error?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Here you can see the deference between VARCHAR and NVARCHAR datatypes:

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

SELECT @Non_Unicode_Var AS NonUnicodeColumn, @Unicode_Var AS UnicodeColumn;

Result:

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

So, you need to change the data type to NVARCHAR data type, then insert your data into the table.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...