При перемещении данных (поля char (18)) с одного MSSQL13 на другой MSSQL13 я теряю «скрытые» символы Юникода.
Src - Danish_Norwegian_CI_AS.
Tgt is SQL_Latin1_General_CP1_CI_AS.
Пример: char (18), указанный в L_KEY в исходной таблице, отображается как '9060001429 00099'
, когда я выбираю «Results to Text».
Когда я выбираю «Results to Grid», он отображается как '9060001429'
Когда я смотрю на конкретный пример и его отдельные символы и номер Unicode, я получаю это:
Pos UnicodeChar UnicodeValue
--- ----------- ------------
1 9 57
2 0 48
3 6 54
4 0 48
5 0 48
6 0 48
7 1 49
8 4 52
9 2 50
10 9 57
11 0
12 0
13 0
14 0 48
15 0 48
16 0 48
17 9 57
18 9 57
Так что, похоже, позиции 11, 12 и 13 содержат нулевое значение.
Когда я выбираю данные в таблицу на том же сервере с таким же сопоставлением;Я получаю те же результаты.
Когда я выбираю данные в таблицу на другом сервере с SQL_Latin1_General_CP1_CI_AS, я теряю позиции 11-18 в приведенном выше примере.
Я пытался создать таблицу в целевой базе данных сстолбец с тем же сопоставлением, что и исходный столбец, и попытка перемещения данных с помощью мастера импорта / экспорта служб SSIS.
Если в запросе используется явное преобразование в мастере импорта / экспорта служб SSIS (convert (nvarchar (18),L_KEY)) Я вижу «отсутствующие» символы в окне предварительного просмотра служб SSIS. Тем не менее, когда данные вставляются в целевую таблицу, символы исчезают.
Пожалуйста, помогите
Примечание. Я не могу использовать openrowset или связанные серверы.