Bạn cũng có thể chuyển các tham số vào dòng lệnh psql hoặc từ một tệp loạt. Các câu lệnh đầu tiên thu thập các chi tiết cần thiết để kết nối với cơ sở dữ liệu của bạn.
Lời nhắc cuối cùng yêu cầu các giá trị ràng buộc, giá trị này sẽ được sử dụng trong mệnh đề IN () cột WHERE. Hãy nhớ trích dẫn một chuỗi if và phân tách bằng dấu phẩy:
@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
Bây giờ trong tệp mã SQL của bạn, hãy thêm mã thông báo v1 trong mệnh đề WHERE của bạn hoặc bất kỳ nơi nào khác trong SQL. Lưu ý rằng các mã thông báo cũng có thể được sử dụng trong một câu lệnh SQL mở, không chỉ trong một tệp. Lưu nó dưới dạng test.sql:
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
Trong Windows, lưu toàn bộ tệp dưới dạng tệp DOS BATch (.bat), lưu test.sql trong cùng một thư mục và khởi chạy tệp loạt.
Cảm ơn Dave Page, của EnterpriseDB, vì tập lệnh được nhắc ban đầu.