Не понимаю, где синтаксическая ошибка? PostgreSQL 11 - PullRequest
0 голосов
/ 16 января 2019

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, который вызывается сценарием оболочки следующим образом:

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...
                                                       ^

1 Ответ

0 голосов
/ 16 января 2019

Вместо использования аргументов --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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...