I am also having the problem as mentioned in http://archives.postgresql.org/pgsql-general/2009-01/msg00771.php.
However, the sql statement:
 
UPDATE tbl SET newoid = (
    SELECT oid FROM (
      SELECT oid, lowrite(lo_open(oid, 131072), byteafield)
      FROM lo_create(0) o(oid)) x);
 
This is not working for me:
- it is putting same newoid for all the records in the table whereas what is needed is separate oid for each record. Lo_create(0) seems to be taken for all the records.
- can you pls explain the syntax o(oid) ? I do not see any documentation for this.
 
 
Thanks
Satish