复制命令以插入 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 格式时它默认为 ','。
当然,对于您未向我们展示的部分数据,这仍然可能会失败。
我正在尝试使用来自 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 格式时它默认为 ','。
当然,对于您未向我们展示的部分数据,这仍然可能会失败。