【发布时间】:2019-06-10 08:30:56
【问题描述】:
PostgreSQL 版本:11.1 平台:OSX Mojave 10.14.1
这是我的 SQL 代码:
COPY (select nom,prenom,num_carte,pdv_carte,email,date_naissance from compte where num_carte != '' order by id_compte) TO :export_file WITH DELIMITER AS ';' CSV FORCE QUOTE * ENCODING 'UTF-8';
该行位于由 shell 脚本调用的 .sql 文件中,如下所示:
psql --dbname=test -U postgres --set adresses=$DATA_ADRESSE --set export_file="$EXPORT_FILE" --file=$ANO_SQL 1>>$ANO_LOG
这样声明的 EXPORT_FILE 变量:
export EXPORT_FILE="'export_for_fid.csv'"
尝试了许多解决方案,但都没有奏效,总是出现相同的语法错误:
ERROR: syntax error at or near ""
LINE 1: ...where num_carte != '' order by id_compte) TO 'export_for_fid.csv' WITH D...
^
【问题讨论】:
-
select version();的输出是什么 -
是的,对不起,我忘记了版本
PostgreSQL 11.1 on x86_64-apple-darwin, compiled by Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn), 64-bit -
你可以在你的shell脚本中使用
--set export_file="$EXPORT_FILE" --file=$ANO_SQ而不是here-document。这将大大简化您的报价。
标签: sql postgresql shell syntax-error psql