There are two built-in server-side functions, lo_import
and lo_export
, for large object access, which are available for use
in SQL
commands.
Here is an example of their use:
CREATE TABLE image ( name text, raster oid ); INSERT INTO image (name, raster) VALUES ('beautiful image', lo_import('/etc/motd')); SELECT lo_export(image.raster, '/tmp/motd') FROM image WHERE name = 'beautiful image';
These functions read and write files in the server's filesystem, using the permissions of the database's owning user. Therefore, their use is restricted to superusers. (In contrast, the client-side import and export functions read and write files in the client's filesystem, using the permissions of the client program. Their use is not restricted.)