ERASE 存储过程用于擦除整个或部分内部 LOB。
语法
DBMS_LOB.ERASE (
lob_loc IN OUT NOCOPY BLOB,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER := 1);
DBMS_LOB.ERASE (
lob_loc IN OUT NOCOPY CLOB,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER := 1);
参数解释
参数 | 解释 |
---|---|
lob_loc | 要删除的 LOB 的定位器。详细信息请参见 DBMS_LOB 使用说明。 |
amount | 要擦除的字节数(BLOB)或字符数(CLOB)。 |
offset | 以 LOB 开头的绝对偏移量(原点为 1),以字节(BLOB)或字符(CLOB)为单位。 |
使用说明如下:
擦除 LOB 的中间数据时,分别为 BLOB 或 CLOB 写入零字节填充符或空格。
如果在擦除指定的数字之前已到 LOB 值的末尾,则擦除的实际字节数或字符数可以与
amount
参数中指定的数字不同。实际删除的字符数或字节数将在amount
参数中返回。
注意
只擦除 LOB 的部分数据时,LOB 的长度不会减小。要减小 LOB 值的长度,请参见 TRIM。
异常情况
异常 | 描述 |
---|---|
VALUE_ERROR | 任何输入参数均为 NULL。 |
INVALID_ARGVAL | 发生以下某种情况:
|
QUERY_WRITE | 无法在查询中执行 LOB 写入。 |
BUFFERING_ENABLED | 如果在 LOB 上启用了缓冲,则无法在启用 LOB 缓冲的情况下执行操作。 |