如何在PostgreSQL中的\ COPY命令中跳过空行

3

在PostgreSQL的psql中,如何使\copy命令忽略输入文件中的空行?

以下是重现此问题的代码:

create table t1(
  n1 int
);

echo "1
2

" > m.csv

psql> \copy t1(n1) FROM 'm.csv' (delimiter E'\t', NULL 'NULL', FORMAT CSV, HEADER false);

ERROR:  invalid input syntax for integer: ""
CONTEXT:  COPY t1, line 3, column n1: ""

文件m.csv中存在空行。

cat m.csv
1
2
  << empty line
1个回答

5

PostgreSQL的COPY非常严格,因此没有可能以宽容模式启动COPY。如果有可能,您可以使用COPY FROM PROGRAM

[pavel@nemesis ~]$ cat ~/data.csv 
10,20,30
40,50,60
70,80,90 psql -c "\copy f from program ' sed ''/^\s*$/d'' ~/data.csv ' csv" postgres

注意:请勿改变原有html标签和格式,仅翻译英文部分;返回结果中也不要出现解释、补充说明等文字。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接