SSIS izpisa niz Unicode kot kodo znaka Shift-JIS v besedilno datoteko

Datum ustvarjanja strani :

Vzorci, ki povzročijo napake

Predpostavite, da ima stolpec vrste nvarchar v tabeli v strežniku SQL Server niz, ki ga ni mogoče uporabiti v shift-JIS. Mimogrede, če te znake postavite v stolpec varchar, obstajajo znaki, ki jih ni mogoče uporabiti, kot je stolpec »ColumnShiftJis« na desni strani. Zamenjaj ga.

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

Na SSIS je tok nastavljen za branje podatkov iz prejšnje tabele, kot je prikazano na sliki in izhod v besedilno datoteko.

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

Domnevajte, da jo želite izložiti kot datoteko CSV. Ker se Shift-JIS pogosto uporablja v datotekah CSV, nastavite kodiranje znakov besedilne datoteke na Shift-JIS.

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

Če boste to nastavitev izvršili, se bo ob času izhoda prišlo do napake.

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

Prikaže se sporočilo o napaki, podobno naslednjemu:

エラー内容

Izhodna datoteka bo prav tako prekinjena na polovici, ko je prišlo do napake.

出力されたテキスト

Če poskusite izhod, kot je, bo napaka, zato poskusite vključiti "pretvorbo podatkov" v sredini.

データ変換 追加

Pretvorite podatkovni tip iz »DT_WSTR« v »DT_STR« in ga naredite v obrazec, ki je lahko izhod v Shift-JIS.

「DT_WSTR」から「DT_STR」に変換

Če pa to tudi izvršite, boste dobili napako. To je zato, ker SSIS strogo ne uspe implicitno obdelavo, zaradi katere podatki manjkajo. Če želite, da SSIS izvede obdelavo z detyped besedilom, boste morali izrecno določiti zamenjavo znakov za vse znake.

データ変換エラー

Zaodložja

Pri branju iz tabele v zbirki podatkov lahko spremenite vrsto besedila z sqlom. Če je SQL, je SQL Server motor, ki ga vodi, ne SSIS, tako da lahko teče brez napak. Mimogrede, vsi znaki, ki jih ni mogoče uporabiti v Shift-JIS, so "?" Pretvorjeno v: To je specifikacija strani strežnika SQL Server. Tudi če ni SSIS, je rezultat podoben za vse sisteme, ki uporabljajo SQL Server.

Odprite ADO NET Translator in spremenite način dostopa do podatkov v SQL Command. Zdaj, ko lahko vnesete SQL, napišite izjavo Izberi, da pridobite podatke iz zbirke podatkov. Besedilo, ki vsebuje znake, ki jih ni mogoče uporabiti v shift-JIS, se na silo pretvori v varchar z uporabo litega.

SQL で varchar に変換

Ker so znaki, ki jih ni mogoče uporabiti v shift-JIS, že odstranjeni v času pretoka podatkov v SSIS, je obdelavo mogoče prenesti tako, kot je.

処理成功

Lahko vidite, da je besedilo uspešno napisano v CSV. Prav tako so vsi znaki, ki jih ni mogoče uporabiti v shift-JIS, "?" Vidite lahko, da je bila pretvorjena v:

出力されたテキスト