Az SSIS egy Unicode karakterláncot Shift-JIS karakterkódként küld szövegfájlba

Oldal létrehozásának dátuma :

Hibákat eredményező minták

Tegyük fel, hogy az SQL Server táblájának nvarchar típusú oszlopai olyan karakterlánccal rendelkeznek, amely nem használható a Shift-JIS-ben. Egyébként, ha ezeket a karaktereket a varchar oszlopba helyezi, vannak olyan karakterek, amelyek nem használhatók, például a jobb oldali "ColumnShiftJis" oszlop. Cserélje ki.

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

Az SSIS-ben a folyamat úgy van beállítva, hogy az előző táblázatból származó adatokat az ábrán látható módon olvassa be, és egy szövegfájlba adja ki.

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

Tegyük fel, hogy CSV-fájlként szeretné kiadni. Mivel a Shift-JIS-t gyakran használják CSV-fájlokban, állítsa a szövegfájl karakterkódolását Shift-JIS értékre.

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

Ha ezzel a beállítással hajtja végre a műveletet, a kimenet időzítésekor hiba lép fel.

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

A következőhöz hasonló hibaüzenet jelenik meg:

エラー内容

A kimeneti fájl a hiba bekövetkeztekor a félúton is megszakad.

出力されたテキスト

Ha úgy próbál kimenni, ahogy van, hiba lesz, ezért próbálja meg az "adatkonverziót" középre beépíteni.

データ変換 追加

Alakítsa át az adattípust "DT_WSTR" és "DT_STR" formátumra, és alakítsa át olyan űrlapmá, amely a Shift-JIS-be is kitölthető.

「DT_WSTR」から「DT_STR」に変換

Ha azonban ezt is végrehajtja, hibaüzenetet kap. Ennek az az oka, hogy az SSIS szigorúan nem felel meg az implicit feldolgozásnak, ami az adatok hiányát okozza. Ha azt szeretné, hogy az SSIS szövegdefiníciós feldolgozást hajtson végre, akkor az összes karakterhez explicit módon meg kell adnia a karakterhelyettesítést.

データ変換エラー

Lehetséges megoldások

Az SQL használatával módosítható szövegtípus az adatbázis táblájából történő olvasáskor. Ha SQL, akkor az SQL Server motor futtatja, nem az SSIS, így hiba nélkül futtatható. By the way, minden karakter, hogy nem lehet használni a Shift-JIS a "?" Konvertálva a következővé: Ez egy SQL Server oldali specifikáció. Még akkor is, ha nem SSIS, az eredmény hasonló az SQL Servert használó összes rendszer esetében.

Nyissa meg az ADO NET Translator alkalmazást, és módosítsa az adatelérési módot SQL parancsra. Most, hogy beírhatja az SQL-t, írjon egy Select utasítást az adatok adatbázisból való lekéréséhez. A Shift-JIS-ben nem használható karaktereket tartalmazó szöveget a rendszer öntött eljárással erőszakkal varcharrá alakítja át.

SQL で varchar に変換

Mivel a Shift-JIS-ben nem használható karaktereket már eltávolították az SSIS-be áramló adatok idején, a feldolgozás úgy is átadható, ahogy van.

処理成功

Láthatja, hogy a szöveg sikeresen íródott a CSV-be. Továbbá, minden karakter, amely nem használható a Shift-JIS-ben, a "?" Láthatja, hogy a következőre lett átalakítva:

出力されたテキスト