SSIS извежда unicode низ като shift-JIS знак код на текстов файл
Модели, които водят до грешки
Да предположим, че колона от тип nvarchar в таблица на SQL Server има низ, който не може да се използва в Shift-JIS. Между другото, ако поставите тези знаци в колоната varchar, има знаци, които не могат да се използват, като например графата "ColumnShiftJis" вдясно. Сменете го.
На SSIS потокът е настроен да чете данни от предишната таблица, както е показано на фигурата и да го изведе на текстов файл.
Да предположим, че искате да го изведете като CSV файл. Тъй като Shift-JIS често се използва в CSV файлове, задайте кодирането на знака на текстовия файл на Shift-JIS.
Ако изпълните с тази настройка, ще възникне грешка в момента на изхода.
Появява се съобщение за грешка, подобно на следното:
Изходният файл също ще бъде прекъснат наполовина, когато е възникнала грешката.
Ако се опитате да изведете както е, това ще бъде грешка, така че опитайте да включите "преобразуване на данни" в средата.
Преобразувайте типа данни от "DT_WSTR" в "DT_STR" и го направете във формуляр, който може да се изведе на Shift-JIS.
Ако обаче изпълните и това, ще получите грешка. Това е така, защото SSIS строго не успява имплицитно обработване, което води до липсващи данни. Ако искате SSIS да извърши текст детипирана обработка, ще трябва изрично да зададете заместване на знаци за всички знаци.
Заобиколни решения
Има начин да промените вида на текста с помощта на SQL при четене от таблица в база данни. Ако това е SQL, това е SQL Server двигател, който го изпълнява, а не SSIS, така че може да работи без грешки. Между другото, всички знаци, които не могат да се използват в Shift-JIS, са "?" Преобразувани в: Това е спецификация на SQL Server страна. Дори и да не е SSIS, резултатът е подобен за всички системи, които използват SQL Server.
Отворете ADO NET Translator и променете режима за достъп до данни на SQL Command. Сега, когато можете да въведете SQL, напишете изявление Изберете, за да извлечете данни от базата данни. Текст, който съдържа знаци, които не могат да се използват в Shift-JIS се преобразува насила в varchar с помощта на отливка.
Тъй като знаците, които не могат да се използват в Shift-JIS, вече са премахнати по време на данни, изтичащи към SSIS, обработването може да бъде преминато, както е.
Можете да видите, че текстът е успешно написан на CSV. Също така всички знаци, които не могат да се използват в Shift-JIS, са "?" Можете да видите, че е преобразуван в: