还有一些对应上面那些客户端函数的服务器端函数,可以在 SQL 命令里使用;
实际上,大多数客户端函数都只是服务器端函数的等效接口。这些服务器端函数中,
通过 SQL 命令调用的实际有用的是
lo_creat,
lo_create,
lo_unlink,
lo_import,和
lo_export。
下面是一些例子:
CREATE TABLE image (
name text,
raster oid
);
SELECT lo_creat(-1); -- 返回新创建的空的大对象的 OID
SELECT lo_create(43213); -- 企图创建 OID 为 43213 的大对象
SELECT lo_unlink(173454); -- 删除 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用户使用。