我正试图使用csv文件中的复制命令向postgres数据库进行大容量插入。db表中的所有列都是character_varying(1024(类型。copy命令在使用双引号的某些值时失败例如:"TODD’S JAMES RENO PHCY,INC.">
我的复制命令如下所示:
copy file_tmp FROM /srv/data0/transfer/data_2.csv USING DELIMITERS ','
你能帮我摆脱这些特殊的角色并让它发挥作用吗?
尽管您指定了分隔符,但尚未指定格式,因此它仍然使用"text"。在"文本"格式中,事物通过反斜杠转义,而不是引号。
此外,"USING DELIMITERS"是一种极其过时的语法。
你可能想要这样的东西:
copy file_tmp FROM /srv/data0/transfer/data_2.csv WITH (FORMAT CSV)
您不需要指定分隔符,因为使用CSV格式时,它默认为","。
当然,这仍然可能在你没有向我们展示的部分数据上失败