不明白语法错误在哪里? PostgreSQL 11
Don't understand where is syntax error ? PostgreSQL 11
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';
该行位于 .sql 文件中,由 shell 脚本调用,如下所示:
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'"
尝试了很多解决方案,但 none 有效,总是出现相同的语法错误:
ERROR: syntax error at or near ""
LINE 1: ...where num_carte != '' order by id_compte) TO 'export_for_fid.csv' WITH D...
^
您可以在 shell 脚本中使用此处文档,而不是使用 --file 和 --set 参数:(注意:我将 COPY
替换为 \COPY
)
#!/bin/sh
EXPORT_FILE="export_for_fid.csv"
DB_NAME="test"
psql --dbname=${DB_NAME} -U postgres <<OMG
\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';
OMG
#eof
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';
该行位于 .sql 文件中,由 shell 脚本调用,如下所示:
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'"
尝试了很多解决方案,但 none 有效,总是出现相同的语法错误:
ERROR: syntax error at or near ""
LINE 1: ...where num_carte != '' order by id_compte) TO 'export_for_fid.csv' WITH D...
^
您可以在 shell 脚本中使用此处文档,而不是使用 --file 和 --set 参数:(注意:我将 COPY
替换为 \COPY
)
#!/bin/sh
EXPORT_FILE="export_for_fid.csv"
DB_NAME="test"
psql --dbname=${DB_NAME} -U postgres <<OMG
\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';
OMG
#eof