SSIS väljastab Unicode'i stringi Shift-JIS märgikoodina tekstifailile
Mustrid, mis põhjustavad vigu
Oletame, et SQL Serveri tabelis nvarchari tüüpi veerul on string, mida shift-JIS-is kasutada ei saa. Muide, kui paned need märgid varchari veergu, on märke, mida ei saa kasutada, näiteks paremal veerg "ColumnShiftJis". Asendage see.
SSIS-is on voog seadistatud lugema eelmise tabeli andmeid, nagu on näidatud joonisel, ja väljastama selle tekstifaili.
Oletame, et soovite selle CSV-failina väljastada. Kuna Shift-JIS-i kasutatakse sageli CSV-failides, seadke tekstifaili märgikodeerimine väärtuseks Shift-JIS.
Kui käivitate selle sättega, ilmneb väljundi ajastamisel tõrge.
Kuvatakse järgmisega sarnane tõrketeade.
Väljundfail katkestatakse tõrke ilmnemisel ka poolel teel.
Kui proovite väljastada nii, nagu see on, on see viga, nii et proovige keskele lisada "andmete teisendamine".
Teisendage andmetüüp olekust "DT_WSTR" olekuks "DT_STR" ja muutke see vormiks, mida saab väljastada Shift-JIS-i.
Kuid kui te seda ka täidate, saate vea. Seda seetõttu, et SSIS ebaõnnestub rangelt kaudsel töötlemisel, mis põhjustab andmete puudumist. Kui soovite, et SSIS teostaks tekstideskirjutatud töötlemist, peate kõigi märkide jaoks selgesõnaliselt määrama märgiasenduse.
Lahendused
Andmebaasi tabelist lugedes on võimalik sql-i abil teksti tüüpi muuta. Kui see on SQL, siis seda käitab SQL Serveri mootor, mitte SSIS, nii et see võib tõrgeteta töötada. Muide, kõik märgid, mida shift-JIS-is kasutada ei saa, on "?" Teisendatud järgmiseks: See on SQL Serveri külje spetsifikatsioon. Isegi kui see ei ole SSIS, on tulemus sarnane kõigi SQL Serverit kasutavate süsteemide puhul.
Avage ADO NET Translator ja muutke andmejuurdepääsu režiim SQL-käsuks. Nüüd, kui saate SQL-i sisestada, kirjutage andmebaasist andmete toomiseks vali avaldus. Tekst, mis sisaldab märke, mida shift-JIS-is kasutada ei saa, teisendatakse valatud abil sunniviisiliselt varchariks.
Kuna märgid, mida shift-JIS-is kasutada ei saa, on SSIS-i voolavate andmete ajal juba eemaldatud, saab töötlemist edastada sellisena, nagu see on.
Näete, et tekst on CSV-le edukalt kirjutatud. Samuti on kõik märgid, mida Shift-JIS-is kasutada ei saa, "?" Näete, et see on teisendatud järgmiselt: