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 코드 파일에서 WHERE 절 또는 SQL의 다른 곳에 v1 토큰을 추가합니다. 토큰은 파일뿐만 아니라 열린 SQL 문에서도 사용할 수 있습니다. 이것을 test.sql로 저장하십시오.
SELECT * FROM myTable
WHERE NOT someColumn IN (:v1);
Windows에서는 전체 파일을 DOS BATch 파일 (.bat)로 저장하고 test.sql을 동일한 디렉토리에 저장 한 다음 배치 파일을 실행합니다.
원본 프롬프트 스크립트에 대해 EnterpriseDB의 Dave Page에게 감사드립니다.