Linux
Postgres 9.0 linux命令到windows命令的轉換
我正在開發一個
delphi 7
用作前端和後端的應用程序postgres 9.0
。我必須將圖像上傳到伺服器,所以我使用
\lo_import
and\lo_export
用於在伺服器上插入圖像並從伺服器獲取圖像。我遇到了一個需要的問題,
LASTOID
所以\lo_import
我可以使用 OID 更新表中的一行,但我無法在 Windows 中設置正確的語法這是我在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 commnad 嗎?
我從關於 stackoverflow postgres-9-0-linux-command-to-windows-command-conversion 的問題中得到了這個答案
只需將命令放在一個文件中(比如 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