คุณยังสามารถส่งผ่านพารามิเตอร์ที่บรรทัดคำสั่ง psql หรือจากไฟล์แบตช์ คำสั่งแรกรวบรวมรายละเอียดที่จำเป็นสำหรับการเชื่อมต่อกับฐานข้อมูลของคุณ
พรอมต์สุดท้ายขอค่าข้อ จำกัด ซึ่งจะใช้ในคำสั่ง WHERE คอลัมน์ IN () อย่าลืมใส่เครื่องหมายอัญประกาศเดี่ยวหากสตริงและคั่นด้วยลูกน้ำ:
@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
ตอนนี้ในไฟล์โค้ด SQL ของคุณให้เพิ่มโทเค็น v1 ภายในส่วนคำสั่ง WHERE ของคุณหรือที่อื่น ๆ ใน SQL โปรดทราบว่าโทเค็นสามารถใช้ในคำสั่ง SQL แบบเปิดได้ไม่ใช่แค่ในไฟล์ บันทึกเป็น test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
ใน Windows ให้บันทึกทั้งไฟล์เป็นไฟล์ DOS BATch (.bat) บันทึก test.sql ในไดเร็กทอรีเดียวกันและเปิดไฟล์แบตช์
ขอขอบคุณสำหรับ Dave Page จาก EnterpriseDB สำหรับสคริปต์ที่ได้รับแจ้งดั้งเดิม