APPEND 存储过程用于将内部源 LOB 的内容附加到目标 LOB。

语法

  1. DBMS_LOB.APPEND (
  2. dest_lob IN OUT NOCOPY BLOB,
  3. src_lob IN BLOB);
  4. DBMS_LOB.APPEND (
  5. dest_lob IN OUT NOCOPY CLOB,
  6. 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 的写操作包含在 OPENCLOSE 语句中。

  • 如果在已归档的 LOB 上调用 APPEND,则它将在写入第一个字节之前隐式获取 LOB。

  • 如果在作为 DBFS 链接的 SecureFiles LOB 上调用 APPEND,会引发异常。