我正在尝试通过AWK程序将数据流式传输到Postgres COPY命令。这通常很有用。但是,在我最近的数据中,我得到了包含' \。'值。
Postgres文档提到这个字符组合代表数据结束标记http://www.postgresql.org/docs/9.2/static/sql-copy.html,并且在尝试使用COPY插入时出现相关错误。
我的问题是,有没有办法解决这个问题?也许将数据结束标记更改为不同的字符组合?或者在尝试使用COPY命令插入之前是否必须更改/删除这些字符串?
答案 0 :(得分:1)
您可以尝试通过sed 's:\\:\\\\:g'
过滤数据 - 这会将数据中的每\
更改为\\
,这是复制数据中单个反斜杠的正确转义序列。< / p>
但我认为不仅反斜杠会有问题。此外,换行符应由\n
编码,回车符为\r
,制表符为\t
(制表符是复制中的默认字段分隔符)。