Ви також можете передавати параметри в командному рядку psql або з командного файлу. Перші оператори збирають необхідні деталі для підключення до вашої бази даних.
Заключний підказка запитує значення обмеження, які будуть використані в реченні WHERE стовпця IN (). Пам’ятайте, що якщо рядки містять одинарні лапки, і розділяйте їх комами:
@echo off
echo "Test for Passing Params to PGSQL"
SET server=localhost
SET /P server="Server [%server%]: "
SET database=amedatamodel
SET /P database="Database [%database%]: "
SET port=5432
SET /P port="Port [%port%]: "
SET username=postgres
SET /P username="Username [%username%]: "
SET /P bunos="Enter multiple constraint values for IN clause [%constraints%]: "
ECHO you typed %constraints%
PAUSE
REM pause
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h %server% -U %username% -d %database% -p %port% -e -v v1=%constraints% -f test.sql
Тепер у своєму кодовому файлі SQL додайте маркер v1 до вашого речення WHERE або де-небудь ще в SQL. Зверніть увагу, що маркери також можна використовувати у відкритому операторі SQL, а не лише у файлі. Збережіть це як test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
У Windows збережіть весь файл як файл DOS BATch (.bat), збережіть test.sql в тому ж каталозі та запустіть пакетний файл.
Дякуємо Дейву Пейджу з EnterpriseDB за оригінальний підказаний сценарій.