导入带有包含转义分隔符的字段值的分隔文件

时间:2017-10-02 20:16:05

标签: postgresql csv pgloader

给定以下格式的分隔文件

  • 由管道字符|
  • 分隔的字段
  • 文本字段未加引号
  • 某些文字字段值包含转储管\|,转义换行符\\n或转义回车\\r
1|text containing the pipe \| character|3
                           ^^^

成功加载此文件的pgloader选项的正确组合是什么?

我试过

pgloader --type csv --field "field1,field2,field3" \
--with "fields terminated by '|'" \
--with "fields not enclosed" \
path/to/file.csv \
postgresql://user@host:port/dbname?tablename=schema.table

这对我来说显然不起作用,因为pgloader看到四个字段而不是三个字段。

1 个答案:

答案 0 :(得分:1)

您应该指定转义字符,默认情况下它是双引号。

尝试以下命令:

pgloader --type csv \
         --field "field1,field2,field3" \
         --with "fields terminated by '|'" \
         --with "fields escaped by '\'" \
         path/to/file.csv \
         postgresql://user@host:port/dbname?tablename=schema.table