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

相关内容