历史版本。 PostgreSQL 8.0 已结束支持。 请参阅 当前版本手册.
28.4. Server-Side Functions #
与前面介绍的每个客户端函数相对应,都有可以从 SQL 调用的服务端函数;实际上,大多数客户端函数都只是等价服务端函数的接口。通过 SQL 命令调用起来真正方便的有
lo_creat、lo_unlink、lo_import 和
lo_export。下面是它们的使用示例:
CREATE TABLE image (
name text,
raster oid
);
SELECT lo_creat(-1); -- returns OID of new, empty large object
SELECT lo_unlink(173454); -- deletes large object with OID 173454
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';
服务器端 lo_import 和 lo_export 函数的行为与客户端对应函数有很大不同。这两个函数使用运行数据库服务器的操作系统用户的权限,读写服务器文件系统中的文件,因此仅限超级用户使用。相比之下,客户端导入和导出函数使用客户端程序的权限,读写客户端文件系统中的文件。客户端函数可以被任何 PostgreSQL 用户使用。