Protože je váš soubor umístěn na vašem místním počítači a chcete objekt blob importovat na vzdálený server, máte dvě možnosti:
1) Přeneste soubor na server a použijte funkci na straně serveru :
UPDATE species
SET speciesimages = lo_import('/path/to/server-local/file/zzz4.jpg')
WHERE species = 'ACAAC04';
2) Použijte psql meta- příkaz jako byste to měli.
Ale nemůžete kombinovat psql meta příkazy s SQL-příkazy, to je nemožné.
Použijte proměnnou psql :LASTOID
v UPDATE
příkaz, který spustíte ihned po \lo_import
meta příkaz ve stejné relaci psql:
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
Chcete-li to naskriptovat (funguje v Linuxu, neznám skriptování v prostředí Windows):
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
\\
je metapříkaz oddělovače. Musíte zdvojnásobit\
, v""
řetězec, protože shell interpretuje jednu vrstvu.\
před novým řádkem je pouze pokračování řádku v linuxových shellech.
Alternativní syntaxe (opět testováno na Linuxu):
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