SSIS ieșiri un șir Unicode ca un cod de caracter Shift-JIS într-un fișier text

Data creării paginii :

Modele care duc la erori

Să presupunem că o coloană de tip nvarchar într-un tabel pe SQL Server are un șir care nu poate fi utilizat în Shift-JIS. Apropo, dacă puneți aceste caractere în coloana varchar, există caractere care nu pot fi utilizate, cum ar fi coloana "ColumnShiftJis" din dreapta. Înlocuiți-l.

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

Pe SSIS, fluxul este configurat pentru a citi datele din tabelul anterior, așa cum se arată în figură și a le afișa într-un fișier text.

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

Să presupunem că doriți să-l ieșire ca un fișier CSV. Deoarece Shift-JIS este adesea folosit în fișierele CSV, setați codificarea caracterelor fișierului text la Shift-JIS.

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

Dacă executați cu această setare, va apărea o eroare la momentul ieșirii.

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

Apare un mesaj de eroare similar cu următorul:

エラー内容

Fișierul de ieșire va fi, de asemenea, întrerupt la jumătatea drumului atunci când a apărut eroarea.

出力されたテキスト

Dacă încercați să ieșiți așa cum este, va fi o eroare, așa că încercați să încorporați "conversia datelor" în mijloc.

データ変換 追加

Convertiți tipul de date de la "DT_WSTR" la "DT_STR" și transformați-l într-un formular care poate fi trimis în Shift-JIS.

「DT_WSTR」から「DT_STR」に変換

Cu toate acestea, dacă executați și acest lucru, veți primi o eroare. Acest lucru se datorează faptului că SSIS nu reușește strict procesarea implicită care face ca datele să lipsească. Dacă doriți ca SSIS să efectueze procesarea descrisă a textului, va trebui să specificați în mod explicit înlocuirea caracterelor pentru toate caracterele.

データ変換エラー

Soluții

Există o modalitate de a modifica tipul de text utilizând SQL atunci când citiți dintr-un tabel dintr-o bază de date. Dacă este SQL, este motorul SQL Server care îl rulează, nu SSIS, astfel încât să poată rula fără erori. Apropo, toate caracterele care nu pot fi utilizate în Shift-JIS sunt "?" Convertit la: Aceasta este o specificație de partea SQL Server. Chiar dacă nu este SSIS, rezultatul este similar pentru toate sistemele care utilizează SQL Server.

Deschideți ADO NET Translator și modificați modul de acces la date la SQL Command. Acum că puteți introduce SQL, scrieți o instrucțiune Selectați pentru a regăsi date din baza de date. Textul care conține caractere care nu pot fi utilizate în Shift-JIS este convertit forțat în varchar utilizând distribuția.

SQL で varchar に変換

Deoarece caracterele care nu pot fi utilizate în Shift-JIS au fost deja eliminate în momentul în care datele care circulă către SSIS, procesarea poate fi transmisă așa cum este.

処理成功

Puteți vedea că textul este scris cu succes în CSV. De asemenea, toate caracterele care nu pot fi utilizate în Shift-JIS sunt "?" Puteți vedea că a fost convertit la:

出力されたテキスト