从文件加载原始数据而不删除反斜杠字符

时间:2016-03-30 18:46:52

标签: sql postgresql encoding

我有一个包含以下内容的文件(演示此问题的简化版本):

"abc\"def"

我想将文件的文字内容加载到表中,而不会对数据进行任何修改。以下是我目前正在做的事情:

CREATE TABLE file_content (content text);
COPY file_content FROM '/path/to/test.txt';

表格中的结果行是:

"abc"def"

换句话说,反斜杠被静默删除/忽略。我已尝试使用不同编码(UTF8,LATIN1,SQL_ASCII)的副本,但行为没有任何变化。

此外,ESCAPE和QUOTE选项最初似乎很有希望,但它们仅适用于COPY ... TO。

有没有办法从文件中加载原始数据而不进行修改?我正在使用PostgreSQL版本9.4.6。

1 个答案:

答案 0 :(得分:1)

您需要将\更改为\\。您可以使用sed

sed -i -- 's/\\/\\\\/g' import.file

在执行上述操作之前,请确保您已检查过您的数据并进行备份。