SSIS väljastab Unicode'i stringi Shift-JIS märgikoodina tekstifailile

Lehe loomise kuupäev :

Mustrid, mis põhjustavad vigu

Oletame, et SQL Serveri tabelis nvarchari tüüpi veerul on string, mida shift-JIS-is kasutada ei saa. Muide, kui paned need märgid varchari veergu, on märke, mida ei saa kasutada, näiteks paremal veerg "ColumnShiftJis". Asendage see.

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

SSIS-is on voog seadistatud lugema eelmise tabeli andmeid, nagu on näidatud joonisel, ja väljastama selle tekstifaili.

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

Oletame, et soovite selle CSV-failina väljastada. Kuna Shift-JIS-i kasutatakse sageli CSV-failides, seadke tekstifaili märgikodeerimine väärtuseks Shift-JIS.

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

Kui käivitate selle sättega, ilmneb väljundi ajastamisel tõrge.

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

Kuvatakse järgmisega sarnane tõrketeade.

エラー内容

Väljundfail katkestatakse tõrke ilmnemisel ka poolel teel.

出力されたテキスト

Kui proovite väljastada nii, nagu see on, on see viga, nii et proovige keskele lisada "andmete teisendamine".

データ変換 追加

Teisendage andmetüüp olekust "DT_WSTR" olekuks "DT_STR" ja muutke see vormiks, mida saab väljastada Shift-JIS-i.

「DT_WSTR」から「DT_STR」に変換

Kuid kui te seda ka täidate, saate vea. Seda seetõttu, et SSIS ebaõnnestub rangelt kaudsel töötlemisel, mis põhjustab andmete puudumist. Kui soovite, et SSIS teostaks tekstideskirjutatud töötlemist, peate kõigi märkide jaoks selgesõnaliselt määrama märgiasenduse.

データ変換エラー

Lahendused

Andmebaasi tabelist lugedes on võimalik sql-i abil teksti tüüpi muuta. Kui see on SQL, siis seda käitab SQL Serveri mootor, mitte SSIS, nii et see võib tõrgeteta töötada. Muide, kõik märgid, mida shift-JIS-is kasutada ei saa, on "?" Teisendatud järgmiseks: See on SQL Serveri külje spetsifikatsioon. Isegi kui see ei ole SSIS, on tulemus sarnane kõigi SQL Serverit kasutavate süsteemide puhul.

Avage ADO NET Translator ja muutke andmejuurdepääsu režiim SQL-käsuks. Nüüd, kui saate SQL-i sisestada, kirjutage andmebaasist andmete toomiseks vali avaldus. Tekst, mis sisaldab märke, mida shift-JIS-is kasutada ei saa, teisendatakse valatud abil sunniviisiliselt varchariks.

SQL で varchar に変換

Kuna märgid, mida shift-JIS-is kasutada ei saa, on SSIS-i voolavate andmete ajal juba eemaldatud, saab töötlemist edastada sellisena, nagu see on.

処理成功

Näete, et tekst on CSV-le edukalt kirjutatud. Samuti on kõik märgid, mida Shift-JIS-is kasutada ei saa, "?" Näete, et see on teisendatud järgmiselt:

出力されたテキスト