Comme votre fichier réside sur votre machine locale et que vous souhaitez importer le blob sur un serveur distant, vous avez deux options :
1) Transférez le fichier sur le serveur et utilisez la fonction côté serveur :
UPDATE species
SET speciesimages = lo_import('/path/to/server-local/file/zzz4.jpg')
WHERE species = 'ACAAC04';
2) Utilisez la psql meta- commande comme vous l'avez.
Mais vous ne pouvez pas mélanger les méta-commandes psql avec les commandes SQL, c'est impossible.
Utilisez la variable psql :LASTOID dans une UPDATE commande que vous lancez immédiatement après le \lo_import commande meta dans la même session psql :
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
Pour scripter cela (fonctionne sous Linux, je ne suis pas familier avec les scripts shell 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
\\est la méta-commande séparateur. Vous devez doubler le\, dans un""chaîne, car le shell interprète une couche.\avant la nouvelle ligne est juste la continuation de la ligne dans les shells Linux.
Syntaxe alternative (testée à nouveau sous Linux) :
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