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

Copy Command to insert CSV file - Escape Special Characters

我正在尝试使用来自 csv 文件的复制命令批量插入到 postgres 数据库中。 db table 中的所有列都是 character_varying(1024) type.The 复制命令在双引号中的某些值上失败 例如: "TODD'S JAMES RENO PHCY,INC."

我的复制命令如下所示:

    \copy file_tmp FROM  /srv/data0/transfer/data_2.csv  USING DELIMITERS ',' 

请问如何转义这些特殊字符并使其正常工作?

虽然指定了分隔符,但没有指定格式,所以还是用"text"。在 "text" 格式中,内容通过反斜杠转义,而不是引号。

此外,'USING DELIMITERS' 是一种非常过时的语法。

你可能想要这样的东西:

\copy file_tmp FROM  /srv/data0/transfer/data_2.csv  WITH (FORMAT CSV)

您不需要指定分隔符,因为在使用 CSV 格式时它默认为 ','。

当然,对于您未向我们展示的部分数据,这仍然可能会失败。