SSIS ieșiri un șir Unicode ca un cod de caracter Shift-JIS într-un fișier text
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.
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.
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.
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.
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: