Postgres 9.3复制结束标记损坏 - 有什么方法可以更改此设置吗?

时间:2014-05-21 18:23:28

标签: sql postgresql awk

我正在尝试通过AWK程序将数据流式传输到Postgres COPY命令。这通常很有用。但是,在我最近的数据中,我得到了包含' \。'值。

Postgres文档提到这个字符组合代表数据结束标记http://www.postgresql.org/docs/9.2/static/sql-copy.html,并且在尝试使用COPY插入时出现相关错误。

我的问题是,有没有办法解决这个问题?也许将数据结束标记更改为不同的字符组合?或者在尝试使用COPY命令插入之前是否必须更改/删除这些字符串?

1 个答案:

答案 0 :(得分:1)

您可以尝试通过sed 's:\\:\\\\:g'过滤数据 - 这会将数据中的每\更改为\\,这是复制数据中单个反斜杠的正确转义序列。< / p>

但我认为不仅反斜杠会有问题。此外,换行符应由\n编码,回车符为\r,制表符为\t(制表符是复制中的默认字段分隔符)。