Rohini Mathur
Rohini Mathur

Reputation: 441

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?

Upvotes: 1

Views: 789

Answers (2)

Ilyes
Ilyes

Reputation: 14928

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.

Upvotes: 4

PacoDePaco
PacoDePaco

Reputation: 699

Use nvarchar in your table and when you type your strings in the insert statement put N in front, like N'your string'. Also consider changing your collation due to sorting issues, refer to this question.

Upvotes: 2

Related Questions