私が書いているSSISパッケージに、ソースとしてCSVファイルがあります。接続マネージャの[全般]ページでは、コードページとして_65001
_があります(私は何かをテストしていました)。 Unicodeはチェックされません。
列はvarchar
(その他の)列を持つSQL Server宛先テーブルにマップされます。
宛先にエラーがあります:複数のコードページ(65001と1252)が指定されているため、列 "columnname"を処理できません。
SQL列は、他のアプリケーションが使用しているため、varchar
ではなくnvarchar
にする必要があります。
次に、接続マネージャーの[全般]ページで、コードページを1252 (ANSI - Latin I)
に変更してOKにしますが、もう一度開くと、_65001
_に戻ります。 (テストのために)Unicodeをチェックしてもしなくても、違いはありません。
注として、CSVファイルとSQLテーブルに列が追加および削除された後に、これらすべてが発生し始めました(ユーザー、ご存知のとおり)。それ以前は、まったく問題はありませんでした。はい、高度なエディターでOLE DB宛先を更新しました。
これはSQL Server 2012であり、BIDSとSSISのどのバージョンにも付属しています。
65001コードページ= Unicode(UTF-8)
これに基づいて Microsoftの記事(フラットファイル接続マネージャー) :
コードページ
非Unicodeテキストのコードページを指定します。
また
フラットファイル接続マネージャーは、次の方法で構成できます。
使用するファイル、ロケール、コードページを指定します。ロケールは、日付などのロケールに依存するデータを解釈するために使用され、コードページは、文字列データをUnicodeに変換するために使用されます
したがって、フラットファイルにUnicodeエンコーディングがある場合:
このプロパティは変更できません。常に元のエンコーディングに戻ります。
コードページ識別子の詳細については、次の記事を参照してください。