delphi 7
저는 프론트엔드와 postgres 9.0
백엔드로 사용하는 애플리케이션을 개발 중입니다 .
서버에 이미지를 업로드해야 하므로 서버에 이미지를 삽입하고 서버에서 이미지를 가져오는 데 \lo_import
사용 합니다.\lo_export
나는 OID를 사용하여 내 테이블의 행을 업데이트할 수 있지만 Windows에서 구문을 올바르게 설정할 수 없는 문제 LASTOID
를 발견했습니다.\lo_import
여기에 내 질문이 있습니다stackoverflow.com.. 답을 얻었지만 스크립트가 Linux sheel 명령에 있습니다. ..Windows에서 실행할 수 없습니다
psql -h 192.168.1.12 -p 5432 -d myDB -U my_admin << EOF
\lo_import '/path/to/my/file/zzz4.jpg'
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
EOF
그리고
echo "\lo_import '/path/to/my/file/zzz4.jpg' \\\\ UPDATE species SET speciesimages = :LASTOID WHERE species = 'ACAAC04';" | \
psql -h 192.168.1.12 -p 5432 -d myDB -U my_admin
나는 Windows에서 이것을 시도했지만
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my_admin -c "\lo_import 'C://im/zzz4.jpg'";
그런 다음 즉시 (프로그래밍 방식으로) 내가 하고 있는 일
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d nansis -U nansis_admin -c " update species SET speciesimages = :LASTOID WHERE species='ACAAC24'"
하지만 나는 얻는다Syntax error at or near ":"
Windows 명령으로 숨기는 방법을 알려줄 수 있는 사람이 있나요?
답변1
stackoverflow에 대한 내 질문에서 이 답변을 얻었습니다.postgres-9-0-linux-명령-to-windows-명령-변환
명령을 파일(예: import.psql)에 넣으세요.
-- contents of import.psql
\lo_import '/path/to/my/file/zzz4.jpg'
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
그런 다음 명령을 내립니다.
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my_admin -f import.psql