我的桌子,
Table "public.product_status"
Column | Type | Modifiers
--------+-----------------------+-----------
id | integer | not null
code | character varying(10) |
notes | text |
我的CSV文件的第一行,
1,S,blah blah blah
复制命令,
=# copy product_status from 'status_table.csv' with csv;
ERROR: invalid input syntax for integer: "1"
CONTEXT: COPY product_status, line 1, column id: "1"
真的不明白这是一个整数的无效语法! 甚至postgres似乎也同意我的意见,
=# insert into product_status values (1,'S','blah blah blah');
=# copy product_status to STDOUT with csv;
1,S,blah blah blah
有什么想法吗?我在网站上发现的其他问题似乎不适用于我在这里做错的事情。
答案 0 :(得分:2)
文件开头可能有一个“不可见”字符。
检查内容;如果您使用的是sume UNIX,则可以使用od -c status_table.csv
。
有可能文件开头有一个无用的byte order mark。只需删除它。
答案 1 :(得分:1)
我有同样的问题,我的回答与上面的相同,在文件的开头是一个无用的byte order mark。"以下是我删除它的方法。
1)在vim中打开文件
vim file_with_bom.txt
2)设置' nobomb'选项
:set nobomb
3)保存文件并退出
:wq
希望这有帮助!