Linux

Postgres 9.0 linux命令到windows命令的轉換

  • March 21, 2012

我正在開發一個delphi 7用作前端和後端的應用程序postgres 9.0

我必須將圖像上傳到伺服器,所以我使用\lo_importand\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

引用自:https://unix.stackexchange.com/questions/34647