SSIS udsender en Unicode-streng som en Shift-JIS-tegnkode til en tekstfil
Mønstre, der resulterer i fejl
Antag, at en kolonne af typen nvarchar i en tabel på SQL Server har en streng, der ikke kan bruges i Shift-JIS. Forresten, hvis du sætter disse tegn i varcharkolonnen, er der tegn, der ikke kan bruges, såsom kolonnen "ColumnShiftJis" til højre. Udskift det.
På SSIS er flowet konfigureret til at læse data fra den forrige tabel som vist i figuren og sende dem ud i en tekstfil.
Antag, at du vil output det som en CSV-fil. Da Shift-JIS ofte bruges i CSV-filer, skal du indstille tegnkodningen af tekstfilen til Shift-JIS.
Hvis du udfører med denne indstilling, opstår der en fejl på tidspunktet for output.
Der vises en fejlmeddelelse svarende til følgende:
Outputfilen afbrydes også halvvejs igennem, da fejlen opstod.
Hvis du forsøger at output som det er, vil det være en fejl, så prøv at inkorporere "datakonvertering" i midten.
Konverter datatypen fra "DT_WSTR" til "DT_STR" og gør den til en formular, der kan outputs til Shift-JIS.
Men hvis du også udfører dette, får du en fejl. Dette skyldes, at SSIS strengt undlader implicit behandling, der får data til at mangle. Hvis du vil have SSIS til at udføre tekstdeponeret behandling, skal du eksplicit angive tegnsubstitution for alle tegn.
Løsninger
Der er en måde at ændre typen af tekst ved hjælp af SQL, når du læser fra en tabel i en database. Hvis det er SQL, er det SQL Server-programmet, der kører det, ikke SSIS, så det kan køre uden fejl. Forresten er alle tegn, der ikke kan bruges i Shift-JIS, "?" Konverteret til: Dette er en SQL Server-sidespecifikation. Selvom det ikke er SSIS, er resultatet ens for alle systemer, der bruger SQL Server.
Åbn ADO NET Translator, og skift dataadgangstilstand til SQL Command. Nu, hvor du kan indtaste SQL, skal du skrive en Vælg-sætning for at hente data fra databasen. Tekst, der indeholder tegn, der ikke kan bruges i Shift-JIS, konverteres med magt til varchar ved hjælp af cast.
Da tegn, der ikke kan bruges i Shift-JIS, allerede er fjernet på tidspunktet for data, der strømmer til SSIS, kan behandlingen videregives, som den er.
Du kan se, at teksten er skrevet til CSV-filen. Alle tegn, der ikke kan bruges i Shift-JIS, er også "?" Du kan se, at det er blevet konverteret til: