我有CSV文件,标签分开,字段not用引号括起来,字段数据可以包含单引号、双引号、管道和反斜杠等字符.

示例数据可以如下所示:

1       2       "ba$aR\eR\       18

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

当我try 使用

COPY <tablename> FROM  <filename> NULL AS '';

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

所以我转而使用复制操作符的"CSV格式",比如:

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

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

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

How can I specify that my data is NOT quoted at all?

推荐答案

解决方法(感谢this comment!)

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

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

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

Postgresql相关问答推荐

在输入稍有错误的PostgreSQL表中进行快速字符串搜索

PostgreSQL散列连接与嵌套循环和散列索引

为什么我的应用程序接收的是空值而不是布尔值?

如何在PostgreSQL 16中设置&Q;VARSIZE&Q;和&Q;SET_VARSIZE&Q;

如何删除Devtainer之前创建的PostgreSQL数据库?

PG 16 的 AGE 安装抛出错误:无法创建 src/backend/parser/ag_scanner.c

PostgreSQL unnest 与空数组

我可以在 Ruby on Rails 上编写 PostgreSQL 函数吗?

在postgresql中按经纬度查找最近的位置

PostgreSQL 如何比 SQLite 更快地执行写入?

更新列或列或列时触发触发

如何检索 PostgreSQL 数据库的 comments ?

brew 程序更新恼人的错误信息

如何在 PostgreSQL 中创建 guid

使用 current_setting() 判断值

Postgres 外键on update和on delete选项如何工作?

Python PostgreSQL 模块.哪个最好?

Postgres Hstore 与 Redis - 性能方面

如何在 postgres 查询中排名

由于不支持身份验证类型 10,无法连接到 Postgres DB