Передайте переменную из одного сценария sql в другой как параметр в postgres sql - PullRequest
0 голосов
/ 07 мая 2020

У меня есть два файла posgres sql. File1. sql и file2. sql.

мое требование основано на среде, в которой мне нужно выполнить некоторые скрипты в file2. sql. И file1. sql мне нужно передать имя моей среды.

Ответы [ 2 ]

0 голосов
/ 12 мая 2020

Спасибо, pifor.

Здесь наша проблема заключается в том, что мы передаем значение параметра из файла1, но как читать это значение в файле2.

В файле1. sql существует код ниже: \ i folder1 /folder2/file2.sql -v param1 = '123';

В file2. sql как установить значение param1 и назначить эту переменную, и вы хотите использовать это в file2. sql файловых скриптах .

0 голосов
/ 07 мая 2020

Вы можете передать параметр psql с параметром -v и использовать его в сценарии SQL.

Например, с:

cat file.sql
\echo :param

Вы получите:

$ psql -v param=param1 -e -f file.sql
param1

Вы также можете попробовать использовать psql переменные, которые доступны в том же сеансе psql.

Например, с:

cat file1.sql
\set param 'param1'

cat file2.sql
\echo :param

Вы получите :

postgres=# \i file1.sql
postgres=# \i file2.sql;
param1
postgres=# 

См. https://www.postgresql.org/docs/12/app-psql.html#APP - PSQL -ПЕРЕМЕННЫЕ

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