Postgres使用FOREIGN TABLE和数据包括“\”

时间:2013-04-12 05:53:15

标签: postgresql foreign-data-wrapper

我的文字文件如下:

\home\stanley:123456789
c:/kobe:213
\tej\home\ant:222312

并创建FOREIGN TABLE步骤:

CREATE FOREIGN TABLE file_check(txt text) SERVER file_server OPTIONS (format 'text', filename '/home/stanley/check.txt');

选择file_check(使用:select * from file_check)

我的控制台告诉我

homestanley:123456789
c:/kobe:213
ejhomeant:222312

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

文件foreign-data-wrapper使用与COPY相同的规则(可能是因为它下面是相同的代码)。你必须考虑反斜杠是一个转义字符......

http://www.postgresql.org/docs/9.2/static/sql-copy.html

  

上表中未提及的任何其他后退字符将用于表示自己。但是,请注意不必要地添加反斜杠,因为这可能会意外地产生匹配数据结束标记(。)或空字符串(默认为\ N)的字符串。在完成任何其他反斜杠处理之前,将识别这些字符串。

因此,您需要将反斜杠加倍,或者将其作为单列csv文件进行尝试,看看是否有帮助