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 file system, 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 file system, using the permissions of
the client program. Their use is not restricted.)