TRIM
存储过程用于将内部 LOB
的值修整为在 newlen
参数中指定的长度。
TRIM
存储过程为 BLOB
指定以字节为单位的长度,为 CLOB
指定以字符为单位的长度。
说明
TRIM
存储过程将 LOB
的长度减少到 newlen
参数中指定的值。
如果尝试对空的 LOB
执行 TRIM
,则无结果,并且 TRIM
不返回错误。如果在 newlen
中新指定的长度大于 LOB
的大小,则会引发异常。
语法
DBMS_LOB.TRIM (
lob_loc IN OUT NOCOPY BLOB,
newlen IN INTEGER);
DBMS_LOB.TRIM (
lob_loc IN OUT NOCOPY CLOB CHARACTER SET ANY_CS,
newlen IN INTEGER);
参数解释
参数 | 解释 |
---|---|
lob_loc | 内部 |
newlen | 经过修剪过的新的 |
异常情况
异常 | 描述 |
---|---|
VALUE_ERROR |
|
INVALID_ARGVAL | 可能为以下几种情况:
|
QUERY_WRITE | 无法在查询或 PDML 并行执行服务器内执行 |
BUFFERING_ENABLED | 如果在 |
使用说明
不强制要求将
LOB
操作包裹在 Open/Close 接口中。 如果在执行操作之前没有打开LOB
,则在调用过程中会更新LOB
列上的功能索引和域索引。 如果在执行操作之前打开了LOB
,则必须在提交事务之前将其关闭。在关闭内部LOB
时,将更新LOB
列上的功能索引和域索引。如果未将
LOB
操作包裹在 Open/Close API 内,则每次写入LOB
时都会更新功能索引和域索引。为避免对性能产生不利影响,建议将对LOB
的写操作包含在OPEN
或CLOSE
语句中。必要时,
TRIM
在更改LOB
的长度之前会获取LOB
,除非指定的新长度为 0。