Vous pouvez également transmettre les paramètres sur la ligne de commande psql ou à partir d'un fichier de commandes. Les premières instructions rassemblent les détails nécessaires à la connexion à votre base de données.
La dernière invite demande les valeurs de contrainte, qui seront utilisées dans la clause WHERE colonne IN (). N'oubliez pas de placer les chaînes entre guillemets simples et séparez-les par une virgule:
@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
Maintenant, dans votre fichier de code SQL, ajoutez le jeton v1 dans votre clause WHERE, ou n'importe où ailleurs dans le SQL. Notez que les jetons peuvent également être utilisés dans une instruction SQL ouverte, pas seulement dans un fichier. Enregistrez-le sous test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
Sous Windows, enregistrez le fichier entier en tant que fichier DOS BATch (.bat), enregistrez le test.sql dans le même répertoire et lancez le fichier de commandes.
Merci à Dave Page, d'EnterpriseDB, pour le script original.