SSIS produz uma sequência Unicode como um código de caractere Shift-JIS para um arquivo de texto

Data de criação de página :

Padrões que resultam em erros

Suponha que uma coluna de tipo nvarchar em uma tabela no SQL Server tenha uma string que não pode ser usada no Shift-JIS. A propósito, se você colocar esses caracteres na coluna varchar, há caracteres que não podem ser usados, como a coluna "ColumnShiftJis" à direita. Substitua-o.

Unicode 文字をデータベースのテーブルに入れる

No SSIS, o fluxo é configurado para ler dados da tabela anterior, conforme mostrado na figura e exerí-los para um arquivo de texto.

テキストファイルへ出力する様にフローを構築

Suponha que você queira exemá-lo como um arquivo CSV. Uma vez que shift-JIS é frequentemente usado em arquivos CSV, defina a codificação de caractere do arquivo de texto para Shift-JIS.

文字コードを Shift-JIS に設定

Se você executar com esta configuração, um erro ocorrerá no momento da saída.

テキストファイル書き込み時にエラー

Uma mensagem de erro semelhante à seguinte aparece:

エラー内容

O arquivo de saída também será interrompido no meio do caminho quando o erro ocorreu.

出力されたテキスト

Se você tentar sair como está, será um erro, então tente incorporar a "conversão de dados" no meio.

データ変換 追加

Converta o tipo de dados de "DT_WSTR" para "DT_STR" e transforme-o em um formulário que pode ser saída para Shift-JIS.

「DT_WSTR」から「DT_STR」に変換

No entanto, se você também executar isso, você terá um erro. Isso ocorre porque o SSIS falha estritamente no processamento implícito que faz com que os dados sejam faltantes. Se você quiser que o SSIS execute o processamento destipado de texto, você precisará especificar explicitamente a substituição de caracteres para todos os caracteres.

データ変換エラー

Soluções alternativas

Há uma maneira de alterar o tipo de texto usando SQL ao ler de uma tabela em um banco de dados. Se for SQL, é o motor SQL Server que o executa, não o SSIS, para que ele possa funcionar sem erros. A propósito, todos os caracteres que não podem ser usados no Shift-JIS são "?" Convertido em: Esta é uma especificação lateral do SQL Server. Mesmo que não seja SSIS, o resultado é semelhante para todos os sistemas que usam SQL Server.

Abra o ADO NET Tradutor e altere o modo de acesso de dados ao Comando SQL. Agora que você pode inserir SQL, escreva uma instrução Select para recuperar dados do banco de dados. O texto que contém caracteres que não podem ser usados no Shift-JIS é convertido à força para varchar usando o elenco.

SQL で varchar に変換

Uma vez que caracteres que não podem ser usados no Shift-JIS já foram removidos no momento do fluxo de dados para SSIS, o processamento pode ser passado como ele é.

処理成功

Você pode ver que o texto foi escrito com sucesso para o CSV. Além disso, todos os caracteres que não podem ser usados no Shift-JIS são "?" Você pode ver que ele foi convertido para:

出力されたテキスト