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

 蜜爱女_201 发布于 2023-02-12 17:08

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

示例数据可能如下所示:

1       2       "ba$aR\eR\       18

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

当我尝试使用导入它时

COPY  FROM   NULL AS '';

我得到一个错误,psql:-:1: ERROR: missing data for column因为Postgres将反斜杠+选项卡视为"转义选项卡"而不是反斜杠后跟字段分隔符.

所以我切换到使用COPY运算符的"CSV格式",如下所示:

COPY  FROM  WITH CSV DELIMITER E'\t' NULL AS '';

现在出现了一个新错误 psql:-:1: ERROR: value too long for type character varying(254)

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

如何指定我的数据根本没有引用?

1 个回答
  • 解决方法(感谢此评论!)

    COPY <tablename> FROM <filename> WITH CSV DELIMITER E'\t' QUOTE E'\b' NULL AS '';
    

    所以基本上指定一个永远不应该出现在文本中的引号字符,但这非常难看.

    如果实际上有一种方法可以完全关闭报价处理,我会更喜欢它.

    2023-02-12 17:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有