È inoltre possibile passare i parametri dalla riga di comando di psql o da un file batch. Le prime istruzioni raccolgono i dettagli necessari per la connessione al database.
Il prompt finale richiede i valori del vincolo, che verranno utilizzati nella clausola IN () della colonna WHERE. Ricorda di virgolette singole se stringhe e separate da virgola:
@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
Ora nel file di codice SQL, aggiungi il token v1 all'interno della clausola WHERE o in qualsiasi altro punto dell'SQL. Notare che i token possono essere utilizzati anche in un'istruzione SQL aperta, non solo in un file. Salvalo come test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
In Windows, salvare l'intero file come file DOS BATch (.bat), salvare test.sql nella stessa directory e avviare il file batch.
Grazie a Dave Page, di EnterpriseDB, per lo script originale richiesto.