由于撇号和其他未转义的字符,PostgresSQL转储文件正在崩溃?

时间:2017-10-31 15:16:13

标签: postgresql postgresql-9.5 pg-dump

我有一个远程运行的docker容器,我试图从中转储sql数据,如下所示:

docker exec -t test_db pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

当我尝试使用命令

在本地运行此转储文件时
psql reports < dump_31-10-2017_14_38_13.sql

我得到这样的错误:

  

预期&#34;炭

     

无效命令\ N

     

错误:语法错误在或附近&#34; il&#34;   第1行:il faut un ticket parking pour qu&#39; ouvre 750 1000 8 0 f

使用Intellij检查转储文件时,语法突出显示数据中存在破损(由表情符号,撇号和其他字符引起)

enter image description here

如何在转储数据时在postgreSQL中阻止这种情况?

PostgreSQL版本: 9.5.7

1 个答案:

答案 0 :(得分:1)

这种错误通常是先前SQL CREATE语句失败的后果。提到的第一个错误:Expected " char可能是关于未创建的表的某些内容,因此该表中的以下COPY将失败,之后的所有数据将被解释为SQL,这将大量出现失败。

invalid command \N也是一个标志,因为\N在COPY数据中表示NULL,并且当psql使用反斜杠启动元命令混淆不同步的COPY数据时会发生此错误。 / p>

您可以使用psql -v ON_ERROR_STOP=on重新加载转储,并专注于第一个错误。