Передать аргументы командной строки в sql (Postgres) - PullRequest
0 голосов
/ 30 апреля 2018

Как передать аргументы командной строки в файлы sql, запущенные с psql (Postgres)?

т.е.

psql mydatabase < mysqlfile.sql arg1 arg2 arg3...

Возможно ли это?

1 Ответ

0 голосов
/ 30 апреля 2018

Использовать переменную интерполяцию в psql.

Если вы укажете параметр -v variable1=value1 или --set variable1=value1 в командной строке, то :variable1 в файле sql будет заменен соответствующим текстовым значением.

Примечание: используйте строки в кавычках стандартного SQL, если вам нужны кавычки, пробелы и т. Д.

Пример:

echo "SELECT :arg1 FROM :arg2 LIMIT 10;" > script.sql
psql mydatabase -v arg1=relname -v arg2=pg_class < script.sql  
psql mydatabase -v arg1="'some string' as label" -v arg2=pg_namespace < script.sql  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...