是否可以使用CSV格式关闭Postgres COPY命令中的报价处理?

我有CSV文件,以制表符分隔,字段用引号括起来,其中字段数据可以包含单引号、双引号、管道和反斜杠等字符

示例数据可以如下所示:

12“ba$aR\r\18

我想使用COPY语句将此数据导入Postgres

当我尝试使用

将<tablename>从<filename>NULL复制为“”;

由于Postgres将反斜杠+制表符视为“转义制表符”,而不是后跟字段分隔符的反斜杠,因此我得到一个错误psql:-:1:error:缺少列的数据

因此,我转而使用复制操作符的“CSV格式”,如下所示:

从<文件名>复制<tablename>,并将CSV分隔符E'\t'NULL作为“”;

现在有一个新的错误psql:-:1:error:value太长,无法改变类型字符(254)

显然是因为它将字段3开头的双引号解释为字段包装字符

如何指定我的数据根本不被引用?

解决方法(感谢此评论!)

从<文件名>复制<tablename>,并使用CSV分隔符E'\t'QUOTE E'\b'NULL作为“”;

因此,基本上指定一个不应该出现在文本中的引号字符,但这很难看

我更希望有一种方法可以完全关闭报价处理

发表评论