large object是除了jsonb和bytea外的另一种大文件保存方式;
创建
创建 inv_oid = lo_creat(-1);“-1” 参数创建新的空的大对象,返回oid,
SELECT lo_creat(-1);默认PostgreSQL会随机创建一个oid,也可以自己指定一个作为参数.如下是尝试用31321创建大对象
SELECT lo_create (31321);
打开
-- INV_READ = 0x20000
-- INV_WRITE = 0x40000
--SELECT CAST( x'20000' AS integer);
--131072
--SELECT CAST( x'40000' AS integer);
--262144打开,第一个参数是oid,第二个参数是读的十进制数字,
select lo_open(31319,131072)
导入导出文件
CREATE TABLE image (name text,pic oid
);命令行方式直接导入文件
>> INSERT INTO image(name, pic) VALUES ('my image', lo_import('/home/cctv/image.jpg'));同上,但是指定了OID
INSERT INTO image (name, pic) VALUES ('beautiful image', lo_import('/home/cctv/image.jpg', 68583));导出
SELECT lo_export(image.pic, '/home/cctv/newimg.jpg') FROM imageWHERE name = 'beautiful image';
删除
删除
--remove
SELECT lo_unlink(31324);
refs:
PostgreSQL: Documentation: 14: Chapter 35. Large Objects
本文发布于:2024-01-30 16:12:42,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170660236321243.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |