I am looking for a way to store the result of a server-side SQL query in a psql client side variable, so I can use the value in other psql commands. The simplest workaround I could think up requires a unique temporary file:
SELECT oid_field FROM someTable \g(:tempfile) \set var `cat :tempfile` \lo_export :var :destination
What I really want to do is to extract a file from a bash script on the client side, but the OID must be looked up with a query first. Is there any better way?
I even tried this, but did not work:
INSERT INTO tempTable (SELECT oid_field FROM someTable); \lo_export(:LASTOID)
I guess the documentation should say LASTOID contains the oid of the last large object inserted via /lo_insert.
I can of course just invoke psql twice or via expect, but I can't believe I'm the first who tries to do this..