SSIS извежда unicode низ като shift-JIS знак код на текстов файл

Дата на създаване на страница :

Модели, които водят до грешки

Да предположим, че колона от тип nvarchar в таблица на SQL Server има низ, който не може да се използва в Shift-JIS. Между другото, ако поставите тези знаци в колоната varchar, има знаци, които не могат да се използват, като например графата "ColumnShiftJis" вдясно. Сменете го.

Unicode 文字をデータベースのテーブルに入れる

На SSIS потокът е настроен да чете данни от предишната таблица, както е показано на фигурата и да го изведе на текстов файл.

テキストファイルへ出力する様にフローを構築

Да предположим, че искате да го изведете като CSV файл. Тъй като Shift-JIS често се използва в CSV файлове, задайте кодирането на знака на текстовия файл на Shift-JIS.

文字コードを Shift-JIS に設定

Ако изпълните с тази настройка, ще възникне грешка в момента на изхода.

テキストファイル書き込み時にエラー

Появява се съобщение за грешка, подобно на следното:

エラー内容

Изходният файл също ще бъде прекъснат наполовина, когато е възникнала грешката.

出力されたテキスト

Ако се опитате да изведете както е, това ще бъде грешка, така че опитайте да включите "преобразуване на данни" в средата.

データ変換 追加

Преобразувайте типа данни от "DT_WSTR" в "DT_STR" и го направете във формуляр, който може да се изведе на Shift-JIS.

「DT_WSTR」から「DT_STR」に変換

Ако обаче изпълните и това, ще получите грешка. Това е така, защото SSIS строго не успява имплицитно обработване, което води до липсващи данни. Ако искате SSIS да извърши текст детипирана обработка, ще трябва изрично да зададете заместване на знаци за всички знаци.

データ変換エラー

Заобиколни решения

Има начин да промените вида на текста с помощта на SQL при четене от таблица в база данни. Ако това е SQL, това е SQL Server двигател, който го изпълнява, а не SSIS, така че може да работи без грешки. Между другото, всички знаци, които не могат да се използват в Shift-JIS, са "?" Преобразувани в: Това е спецификация на SQL Server страна. Дори и да не е SSIS, резултатът е подобен за всички системи, които използват SQL Server.

Отворете ADO NET Translator и променете режима за достъп до данни на SQL Command. Сега, когато можете да въведете SQL, напишете изявление Изберете, за да извлечете данни от базата данни. Текст, който съдържа знаци, които не могат да се използват в Shift-JIS се преобразува насила в varchar с помощта на отливка.

SQL で varchar に変換

Тъй като знаците, които не могат да се използват в Shift-JIS, вече са премахнати по време на данни, изтичащи към SSIS, обработването може да бъде преминато, както е.

処理成功

Можете да видите, че текстът е успешно написан на CSV. Също така всички знаци, които не могат да се използват в Shift-JIS, са "?" Можете да видите, че е преобразуван в:

出力されたテキスト