PostgreSQL-当行以分隔符结尾时如何使用copy命令(导入文本文件)

PostgreSQL-当行以分隔符结尾时如何使用copy命令(导入文本文件),postgresql,postgresql-9.1,Postgresql,Postgresql 9.1,我正在尝试将几个大文件导入PostgreSQL数据库,这些文件包含以下格式的数据,值由分隔符|分隔。但是,当您使用copy语句导入时会出现问题,该语句给出了一个错误 错误:上一个预期列之后有额外数据 经过一些测试,我发现行中的最后一个字符是问题的原因,每行都以分隔符结尾。我找到了一种解决方法,即在换行字符之前对每个字符进行拉带。我正在寻找复制声明,它可以很好地忽略最后一个字符 8712678|MC|AMC355911||||355911|||AZ|AZ|2002|484|0|0|||C|CLOS

我正在尝试将几个大文件导入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|

没有这样的
拷贝
。您需要使用变通方法,或者您已经使用smth的方法,比如
sed's/|$//g'
,或者只是
altertable blah在表的末尾添加列虚拟
,这样
COPY
将用null代替error来填充它

我将添加一个虚拟列,这比当前使用的方法(即修改文件)简单得多