Ayrıca parametreleri psql komut satırından veya bir toplu iş dosyasından da iletebilirsiniz. İlk ifadeler, veritabanınıza bağlanmak için gerekli ayrıntıları toplar.
Son istem, WHERE column IN () yan tümcesinde kullanılacak kısıtlama değerlerini sorar. Dizeleri tek tırnak içine almayı ve virgülle ayırmayı unutmayın:
@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
Şimdi SQL kod dosyanızda, v1 belirtecini WHERE yan tümcenizin içine veya SQL'de başka herhangi bir yere ekleyin. Belirteçlerin yalnızca bir dosyada değil, açık bir SQL ifadesinde de kullanılabileceğini unutmayın. Bunu test.sql olarak kaydedin:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
Windows'ta tüm dosyayı DOS BATch dosyası (.bat) olarak kaydedin, test.sql'yi aynı dizine kaydedin ve toplu iş dosyasını başlatın.
EnterpriseDB'den Dave Page için orijinal komut dosyası için teşekkür ederiz.