SSIS restituisce una stringa Unicode come codice carattere Shift-JIS in un file di testo
Modelli che generano errori
Si supponga che una colonna di tipo nvarchar in una tabella in SQL Server dispone di una stringa che non può essere utilizzata in Shift-JIS. A proposito, se metti questi caratteri nella colonna varchar, ci sono caratteri che non possono essere utilizzati, come la colonna "ColumnShiftJis" a destra. Sostituirlo.
In SSIS, il flusso è impostato per leggere i dati della tabella precedente come illustrato nella figura e inviarli in un file di testo.
Si supponga di volerlo generare come file CSV. Poiché Shift-JIS viene spesso utilizzato nei file CSV, impostare la codifica dei caratteri del file di testo su Shift-JIS.
Se si esegue con questa impostazione, si verificherà un errore al momento dell'output.
Viene visualizzato un messaggio di errore analogo al seguente:
Anche il file di output verrà interrotto a metà quando si è verificato l'errore.
Se provi a produrre così com'è, sarà un errore, quindi prova a incorporare "conversione dati" nel mezzo.
Converti il tipo di dati da "DT_WSTR" a "DT_STR" e trasformalo in un modulo che può essere inviato a Shift-JIS.
Tuttavia, se esegui anche questo, otterrai un errore. Questo perché SSIS non riesce rigorosamente l'elaborazione implicita che causa la mancanza di dati. Se si desidera che SSIS esegua l'elaborazione detipizzata del testo, sarà necessario specificare in modo esplicito la sostituzione dei caratteri per tutti i caratteri.
Soluzioni alternative
Esiste un modo per modificare il tipo di testo utilizzando SQL durante la lettura da una tabella in un database. Se è SQL, è il motore di SQL Server che lo esegue, non SSIS, quindi può essere eseguito senza errori. A proposito, tutti i caratteri che non possono essere utilizzati in Shift-JIS sono "?" Convertito in: Si tratta di una specifica laterale di SQL Server. Anche se non si tratta di SSIS, il risultato è simile per tutti i sistemi che utilizzano SQL Server.
Aprire ADO NET Translator e modificare la modalità di accesso ai dati in Comando SQL. Ora che è possibile immettere SQL, scrivere un'istruzione Select per recuperare i dati dal database. Il testo che contiene caratteri che non possono essere utilizzati in Shift-JIS viene convertito forzatamente in varchar usando cast.
Poiché i caratteri che non possono essere utilizzati in Shift-JIS sono già stati rimossi al momento del flusso dei dati a SSIS, l'elaborazione può essere passata così com'è.
Puoi vedere che il testo è stato scritto correttamente nel CSV. Inoltre, tutti i caratteri che non possono essere utilizzati in Shift-JIS sono "?" Puoi vedere che è stato convertito in: