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

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

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

我必須將圖像上傳到伺服器,因此我使用\lo_import\lo_export在伺服器上插入圖像並從伺服器獲取圖像。

我遇到了一個問題,需要LASTOIDa 之後,\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 命令嗎?

答案1

我從 stackoverflow 上的問題中得到了這個答案postgres-9-0-linux-指令到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

相關內容