PostgreSQL - 当行以分隔符

时间:2018-05-06 16:34:19

标签: postgresql postgresql-9.1

我正在尝试将几个大文件导入PostgreSQL数据库,这些文件具有以下格式的数据,值由分隔符|分隔。但是当您使用复制语句导入错误时出现问题

  

错误:上一个预期列后的额外数据

经过一些测试后,我发现该行中的最后一个字符是问题的原因,每一行都以分隔符结束。我找到了一种解决方法,即在换行字符之前替换每个字符。我正在寻找COPY语句,它可以很好地忽略最后一个字符

8712678|MC|AMC355911||||355911|||AZ|AZ|2002|484|0|0|||C|CLOSED|CLOSED|239|DECLARED NULL & VOID|2002-01-31 00:00:00|2006-07-28 12:11:55|384101|LODE CLAIM|||2005-10-19 00:00:00|STELLAR METALS SM #2|01 05-10-1872;017STAT0091;30USC26,28,34|AMC355910|200103806|2001-09-07 00:00:00||||38||Y||||2011-07-19 12:55:52|

1 个答案:

答案 0 :(得分:1)

没有这样的COPY。您需要使用一种解决方法,可以使用已经使用过的方法,例如sed 's/|$//g',也可以只使用alter table blah add column dummy到表的末尾,因此COPY会使用空值而不是错误填充