SSIS izvada unikoda virkni kā Shift-JIS rakstzīmes kodu teksta failā

Lapas izveides datums :

Modeļi, kas izraisa kļūdas

Pieņemsim, ka sql servera tabulas nvarchar tipa kolonnā ir virkne, kuru nevar izmantot programmā Shift-JIS. Starp citu, ja šīs rakstzīmes ievietojat kolonnā Varchar, ir rakstzīmes, kuras nevar izmantot, piemēram, kolonna "ColumnShiftJis" labajā pusē. Nomainiet to.

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

SSIS plūsma ir iestatīta, lai nolasītu datus no iepriekšējās tabulas, kā parādīts attēlā, un izvadītu tos teksta failā.

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

Pieņemsim, ka vēlaties to izvadīt kā CSV failu. Tā kā Shift-JIS bieži tiek izmantots CSV failos, iestatiet teksta faila rakstzīmju kodējumu uz Shift-JIS.

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

Ja izpildīsit ar šo iestatījumu, izvades laikā radīsies kļūda.

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

Tiek parādīts kļūdas ziņojums, kas ir līdzīgs šim:

エラー内容

Izvades fails tiks pārtraukts arī pusceļā, kad radās kļūda.

出力されたテキスト

Ja mēģināt izvadīt tādu, kāds tas ir, tā būs kļūda, tāpēc mēģiniet vidū iekļaut "datu konvertēšanu".

データ変換 追加

Konvertējiet datu tipu no "DT_WSTR" uz "DT_STR" un padariet to par formu, kuru var izvadīt uz Shift-JIS.

「DT_WSTR」から「DT_STR」に変換

Tomēr, ja jūs arī to izpildīsit, jūs saņemsiet kļūdu. Tas ir tāpēc, ka SSIS stingri neizdodas netiešā apstrāde, kuras dēļ trūkst datu. Ja vēlaties, lai SSIS veiktu teksta detipizētu apstrādi, jums būs skaidri jānorāda rakstzīmju aizstāšana visām rakstzīmēm.

データ変換エラー

Risinājumi

Ir veids, kā mainīt teksta tipu, izmantojot SQL, lasot no datu bāzes tabulas. Ja tas ir SQL, to palaiž SQL Server programma, nevis SSIS, tāpēc to var palaist bez kļūdām. Starp citu, visas rakstzīmes, kuras nevar izmantot Shift-JIS, ir "?" Konvertēts uz: Šī ir SQL Servera puses specifikācija. Pat ja tas nav SSIS, rezultāts ir līdzīgs visām sistēmām, kas izmanto SQL Serveri.

Atveriet ADO NET Translator un mainiet datu piekļuves režīmu uz SQL komandu. Tagad, kad varat ievadīt SQL, uzrakstiet priekšrakstu Atlasīt, lai izgūtu datus no datu bāzes. Teksts, kurā ir rakstzīmes, kuras nevar izmantot Shift-JIS, tiek piespiedu kārtā pārvērsts par rakstzīmi, izmantojot liešanu.

SQL で varchar に変換

Tā kā rakstzīmes, kuras nevar izmantot Shift-JIS, jau ir noņemtas datu plūsmas laikā uz SSIS, apstrādi var nodot tādu, kāda tā ir.

処理成功

Jūs varat redzēt, ka teksts ir veiksmīgi ierakstīts CSV. Arī visas rakstzīmes, kuras nevar izmantot Shift-JIS, ir "?" Var redzēt, ka tas ir konvertēts par:

出力されたテキスト