Ponieważ plik znajduje się na komputerze lokalnym i chcesz zaimportować obiekt blob na serwer zdalny, masz dwie opcje:
1) Przenieś plik na serwer i użyj funkcji po stronie serwera :
UPDATE species
SET speciesimages = lo_import('/path/to/server-local/file/zzz4.jpg')
WHERE species = 'ACAAC04';
2) Użyj meta- polecenie tak jak ty.
Ale nie możesz mieszać meta poleceń psql z poleceniami SQL, to jest niemożliwe.
Użyj zmiennej psql :LASTOID w UPDATE polecenie, które uruchamiasz natychmiast po \lo_import meta polecenie w tej samej sesji psql:
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
Do tego skryptu (działa w Linuksie, nie jestem zaznajomiony ze skryptami powłoki 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
\\jest metapoleceniem separatora. Musisz podwoić\, w""string, ponieważ powłoka interpretuje jedną warstwę.\przed nową linią jest tylko kontynuacją linii w powłokach Linuksa.
Alternatywna składnia (przetestowana ponownie w systemie 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