DBMS_LOB 模块

DBMS_LOB 模块能够操作大对象。

在描述各个过程和函数的下列各节中,如果大对象为 BLOB,那么长度和位移以字节计。如果大对象为 CLOB,那么长度和位移以字符计。

DBMS_LOB 模块最多支持 10 MB LOB 数据。

此模块的模式为 SYSIBMADM。

DBMS_LOB 模块包括下列例程,这些例程可包含 BLOB 版本和 CLOB 版本(例如,OPEN 过程具有 OPEN_BLOB 和 OPEN_CLOB 实现)。

表 1. DBMS_LOB 模块中可用的内置例程
例程名称 描述
APPEND 过程 将一个大对象追加至另一个大对象。
CLOSE 过程 关闭已打开的大对象。
COMPARE 函数 比较两个大对象。
CONVERTTOBLOB 过程 将字符数据转换为二进制。
CONVERTTOCLOB 过程 将二进制数据转换为字符。
COPY 过程 将一个大对象复制到另一个大对象。
ERASE 过程 擦除大对象。
GET_STORAGE_LIMIT 函数 获取大对象的存储限制。
GETLENGTH 函数 获取大对象的长度。
INSTR 函数 获取大对象中模式的第 n 个实例的位置(从位移开始)。
ISOPEN 函数 检查大对象是否已打开。
OPEN 过程 打开大对象。
READ 过程 读取大对象。
SUBSTR 函数 获取大对象的部分。
TRIM 过程 将大对象调整为指定长度。
WRITE 过程 将数据写至大对象。
WRITEAPPEND 过程 将缓冲区中的数据写至大对象结尾。
注: 在分区数据库环境中,如果在 SELECT 语句的 WHERE 子句中执行下列任何例程,那么将收到错误:
  • dbms_lob.compare
  • dbms_lob.get_storage_limit
  • dbms_lob.get_length
  • dbms_lob.instr
  • dbms_lob.isopen
  • dbms_lob.substr
下表列示模块中可用的公用变量。
表 2. DBMS_LOB 公用变量
公用变量 数据类型
lob_readonly INTEGER 0
lob_readwrite INTEGER 1