mysql から postgres にデータを挿入するときに次のエラーが発生します。
入力データからすべての null 文字を手動で削除する必要がありますか? postgres にこれを実行させる方法はありますか?
ERROR: invalid byte sequence for encoding "UTF8": 0x00
ベストアンサー1
PostgreSQL は、テキスト フィールドに NULL (\0x00) 文字を格納することをサポートしていません (これは、完全にサポートされているデータベースの NULL 値とは明らかに異なります)。
ソース:http://www.postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-UESCAPE
NULL文字を保存する必要がある場合は、bytea
分野- 必要なものはすべて保存できますが、テキスト操作はサポートされません。
PostgreSQL はテキスト値でこれをサポートしていないため、これを削除する良い方法はありません。データを bytea にインポートし、後で特別な関数 (perl か何か) を使用してテキストに変換することもできますが、ロードする前に前処理でそれを行う方が簡単になるでしょう。