Postgres 9.0 Linux コマンドから Windows コマンドへの変換

Postgres 9.0 Linux コマンドから Windows コマンドへの変換

delphi 7私はフロントエンドとpostgres 9.0バックエンドとして使用するアプリケーションに取り組んでいます。

サーバーに画像をアップロードする必要があるため、サーバーに画像を挿入したり、サーバーから画像を取得したりするために\lo_importと を使用します。\lo_export

私は、OIDを使用してテーブルの行を更新できるようにするために、LASTOID後にが必要な問題に遭遇しましたが、Windowsで構文を正しく設定できません\lo_import

私の質問は出典:答えはわかりましたが、スクリプトは Linux シェルコマンドにあります。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

関連情報