数据是从 buffer 参数写入的。WRITE 以指定的长度替换(覆盖)LOB 偏移量中已存在的任何数据。

异常描述

VALUEERROR

lob_locmountoffset 参数中的任何一个为 NULL,超出范围或无效。

INVALID_ARGVAL

可能为以下几种情况:

  • 大于 32767 字节 (或等效字符)

  • offset 小于 1

  • offset 大于 LOBMAXSIZE

QUERY_WRITE

BUFFERING_ENABLED

如果在 LOB 上启用了缓冲,则无法在启用 LOB 缓冲的情况下执行操作。

SECUREFILE_OUTOFBOUNDS

尝试执行写操作并略过标有 FRAGMENT *LOB 末位。

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

  • 从客户端调用 DBMS_LOB.WRITE 时,缓冲区必须包含客户端字符集中的数据。在将缓冲区数据写入 LOB 之前,数据库会将客户端缓冲区转换为服务器的字符集。

  • 不强制要求将 LOB 操作包裹在 Open/Close 接口中。如果在执行操作之前没有打开 LOB,在调用过程中会更新 LOB 列上的功能索引和域索引。如果在执行操作之前打开了 LOB,必须在提交事务之前将其关闭。在关闭内部 LOB 时,将更新 LOB 列上的功能索引和域索引。