复制命令插入CSV文件-转义特殊字符



我正试图使用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格式时,它默认为","。

当然,这仍然可能在你没有向我们展示的部分数据上失败

最新更新