lo_from_bytea()
是一个用于创建大型对象并用数据填充它的系统函数。
lo_from_bytea()
添加于PostgreSQL 9.4。
用法
lo_from_bytea (loid
oid
,data
bytea
) →oid
如果 loid
为 0
,则会自动分配一个 OID,否则将使用提供的 OID。
成功时,返回创建的大对象的 OID,否则引发错误。
变更历史
- PostgreSQL 9.4
- 添加 (提交 c50b7c09)
示例
lo_from_bytea()
的基本用法示例
postgres=# SELECT lo_from_bytea(0, '\x48656c6c6f20776f726c64210a'); lo_from_bytea --------------- 16388 (1 row) postgres=# SELECT * FROM pg_largeobject; loid | pageno | data -------+--------+------------------------------ 16388 | 0 | \x48656c6c6f20776f726c64210a (1 row)
尝试使用现有 OID 创建大对象
postgres=# SELECT lo_from_bytea(16388, '\xdeadbeef'); ERROR: duplicate key value violates unique constraint "pg_largeobject_metadata_oid_index" DETAIL: Key (oid)=(16388) already exists.
参考文献
- PostgreSQL 文档: 面向 SQL 的大型对象函数