对于固定宽度为 n 字节的 CLOB,如果 SUBSTR 的输入量大于(32767/n),则 SUBSTR 返回长度为(32767/n)或 CLOB 长度(以较小者为准)。由于CLOB是宽度可变的字符集,所以 nCLOB 的最大字节宽度。

返回值描述

RAW

参数中包含 BLOB 的函数重载。

VARCHAR2

CLOB 版本。

NULL

可能为以下几种情况:

  • amount 小于 1

  • amount 大于 32767 字节 (或等价字符)

  • offset 小于 1

  • VARCHAR2 缓冲区的形式必须与 CLOB 参数的形式匹配。也就是说,如果输入 LOB 参数的类型为 CLOB,则缓冲区必须包含 CHAR 数据。

  • 从客户端调用 DBMS_LOB.SUBSTR 时,返回的缓冲区包含客户端字符集中的数据。在将缓冲区返回给用户之前,数据库会将 LOB 值从服务器的字符集转换为客户端的字符集。

  • DBMS_LOB.SUBSTR 将基于 LOB 中存储的字符返回 8191 个或更多字符。如果由于字符字节大小超出可用缓冲区而没有返回所有字符,则用户应使用新的偏移量调用 DBMS_LOB.SUBSTR 以读取其余字符,或者循环调用子程序,直到提取完所有数据。