0
我正在使用delphi 7
作爲前端,postgres 9.0
作爲後端的應用程序。Postgres 9.0 linux命令到windows命令轉換
我必須上傳圖像到服務器,所以我使用\lo_import
和\lo_export
在服務器上插入圖像並從服務器獲取圖像。
我曾遇到其中需要\lo_import
後LASTOID
這樣我就可以使用OID在我的表中更新行的問題,但我不能設置語法正確的窗口
UPDATE fishes
SET fishesimages=17755; -- <--last OID
WHERE fishes='0A';
這裏是我的關於stackoverflow.com的問題。我已經得到了答案,但腳本是一個Linux shell腳本。我不能在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 fishesimages = :LASTOID
WHERE fishes = '04';
EOF
和
echo "\lo_import '/path/to/my/file/zzz4.jpg' \\\\ UPDATE species SET fishesimages = :LASTOID WHERE fishes = '04';" | \
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 myDB-U myDB_admin -c " update species SET fishesimages = :LASTOID WHERE fishes='24'"
但我得到Syntax error at or near ":"
任何人都可以告訴我如何將它轉換爲Windows通訊?
+ 1,哎 奏效,謝謝alot..but我覺得你的意思'.sql',而不是'.psql'..please更新,所以我可以接受 – PresleyDias 2012-03-21 07:18:37
@PresleyDias我的意思是'.psql'。文件擴展名對程序無關緊要,但它是一種表示預期內容的方式。該文件包含SQL和psql-specfic指令的混合。將它稱爲'.sql'將會是一個小小的謊言。實際上,這個sql + psql的組合很明顯爲什麼你不能在一個'-c'中同時發佈。 [命令必須是服務器可完全解析的命令字符串(即,它不包含psql特有的功能),或者它是單個反斜槓命令。因此,你不能混用SQL和psql元命令。 ](http://www.postgresql.org/docs/current/static/app-psql.html) – dbenhur 2012-03-21 15:04:14