También puede pasar los parámetros en la línea de comandos psql o desde un archivo por lotes. Las primeras declaraciones recopilan los detalles necesarios para conectarse a su base de datos.
El mensaje final solicita los valores de restricción, que se utilizarán en la cláusula IN () de la columna WHERE. Recuerde poner comillas simples si son cadenas y separarlas por comas:
@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
Ahora, en su archivo de código SQL, agregue el token v1 dentro de su cláusula WHERE, o en cualquier otro lugar del SQL. Tenga en cuenta que los tokens también se pueden usar en una declaración SQL abierta, no solo en un archivo. Guarde esto como test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
En Windows, guarde todo el archivo como un archivo DOS BATch (.bat), guarde test.sql en el mismo directorio y ejecute el archivo batch.
Gracias a Dave Page, de EnterpriseDB, por la secuencia de comandos solicitada original.