我正在开发一个用作delphi 7
前端和postgres 9.0
后端的应用程序。
我必须将图像上传到服务器,因此我使用\lo_import
和\lo_export
在服务器上插入图像并从服务器获取图像。
我遇到了一个问题,需要LASTOID
a 之后,\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