APPEND 存储过程用于将内部源 LOB 的内容附加到目标 LOB。
语法
DBMS_LOB.APPEND (
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB);
DBMS_LOB.APPEND (
dest_lob IN OUT NOCOPY CLOB,
src_lob IN CLOB );
参数解释
参数 | 解释 |
---|---|
dest_lob | 要附加数据的内部 LOB 的定位器。 |
src_lob | 读取数据的内部 LOB 的定位器。 |
异常情况
异常 | 描述 |
---|---|
VALUE_ERROR | 源 LOB 或目标 LOB 为 NULL。 |
QUERY_WRITE | 无法在查询或 PDML 并行执行服务器中执行 LOB 写入。 |
BUFFERING_ENABLED | 如果在任意一个 LOB 上启用了缓冲,则无法在启用 LOB 缓冲的情况下执行操作。 |
使用说明
不强制要求将 LOB 操作包裹在 Open / Close 接口中。 如果在执行操作之前没有打开 LOB,在调用过程中会更新 LOB 列上的功能索引和域索引。 但是,如果在执行操作之前打开了 LOB,必须在提交事务之前将其关闭。 在关闭内部 LOB 时,将更新 LOB 列上的功能索引和域索引。
如果未将 LOB 操作包裹在 Open / Close 接口内,则每次写入 LOB 时都会更新功能索引和域索引。 为了避免影响性能,建议将对 LOB 的写操作包含在
OPEN
或CLOSE
语句中。如果在已归档的 LOB 上调用
APPEND
,则它将在写入第一个字节之前隐式获取 LOB。如果在作为 DBFS 链接的 SecureFiles LOB 上调用
APPEND
,会引发异常。