Você também pode passar os parâmetros na linha de comando do psql ou de um arquivo em lote. As primeiras instruções reúnem os detalhes necessários para se conectar ao seu banco de dados.
O prompt final pede os valores de restrição, que serão usados na cláusula IN () da coluna WHERE. Lembre-se de colocar aspas simples nas strings e separar por vírgula:
@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
Agora, em seu arquivo de código SQL, adicione o token v1 dentro de sua cláusula WHERE ou em qualquer outro lugar no SQL. Observe que os tokens também podem ser usados em uma instrução SQL aberta, não apenas em um arquivo. Salve como test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
No Windows, salve o arquivo inteiro como um arquivo DOS BATch (.bat), salve o test.sql no mesmo diretório e execute o arquivo em lote.
Obrigado por Dave Page, de EnterpriseDB, pelo script original solicitado.