READ
存储过程用于从以 LOB
开头的指定偏移量开始读取数据,并返回到 buffer
参数中。
在 amount
参数中返回实际读取的字节数或字符数。 如果输入偏移量超过 LOB
的末位,则将 amount
设置为 0,并引发 NO_DATA_FOUND
异常。
语法
DBMS_LOB.READ (
lob_loc IN BLOB,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER,
buffer OUT RAW);
DBMS_LOB.READ (
lob_loc IN CLOB CHARACTER SET ANY_CS,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER,
buffer OUT VARCHAR2 CHARACTER SET ANY_CS);
参数解释
参数 | 解释 |
---|---|
lob_loc | 要读取的 |
file_loc | 要检查的 |
amount | 要读取的字节数(对于 |
offset | 开始读取 |
buffer | 读取操作的输出缓冲区。 |
异常情况
异常 | 描述 |
---|---|
VALUE_ERROR |
|
INVALID_ARGVAL | 可能为以下几种情况:
|
NO_DATA_FOUND | 到达 |
使用说明
VARCHAR2
缓冲区的形式必须与CLOB
参数的形式匹配。换句话说,如果输入LOB
参数的类型为CLOB
,则缓冲区必须包含CHAR
数据。从客户端调用
DBMS_LOB.READ
时,返回的缓冲区的值包含客户端字符集中的数据。在将缓冲区的值返回给用户之前,数据库会将LOB
值从服务器的字符集转换为客户端的字符集。如果需要,可以让
READ
在读取之前获取LOB
。