前提・実現したいこと
Postgresql環境でCSVからcopyを試みましたが、Integer型のカラムに対して空のデータ(QUOTEの""のみ)があった為syntax errorが発生しました。NULLとして入れることで対処しようと思いましたがうまく行かず、ダミーのテーブルとCSVを作って試したが同様に失敗した。
同様の事象と思われる質問もありましたが、別の方法で対処されており参考のURLを見ても解決出来ませんでした。何か心当たりなどあるかたがおられましたらご教授いただけたらと思います。
該当のソースコード
copy public.test (inta, strb) FROM '//xxxxxxx/test_dummy.CSV' with CSV null as '' HEADER ENCODING 'SHIFT_JIS_2004' QUOTE '"' ESCAPE '''';
発生している問題・エラーメッセージ
ERROR: "integer"型の入力構文が不正です: "" CONTEXT: testのCOPY、行 5、列 inta: ""
テスト用に作成したテーブル
CREATE TABLE public.test( inta integer, strb character varying(1000) COLLATE pg_catalog."default" )
copyに使用したCSVの中身
"数値","文字"
"1","A"
"2","B"
"3",""
"","D"
"5","E"
試したこと
・with null as '' で空文字("")をnullとして認識させようとしたが変化無し
・INSERT INTO test VALUES (NULL, 'TEST'); は問題なくinsert出来た
補足情報(FW/ツールのバージョンなど)
利用環境:
Windows 10
PostgreSQL 13.1, compiled by Visual C++ build 1914, 64-bit
pgAdmin 4.28
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/02 18:43