SSIS izvada unikoda virkni kā Shift-JIS rakstzīmes kodu teksta failā
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.
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.
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.
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.
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: