4. 管理 Temporary LOB
和 persistent LOB 不同,Temporary LOB 不支持事务管理、一致性读取、回滚等等,所以你应该注意以下几点:
* 当处理 Temporary LOB 发生错误时,你必须释放该 LOB,然后重新进行该处理;
* 由于不支持一致性读取和回滚,所以你不能将多个 LOB 指针都指向同一个 Temporary LOB 数据;
* 若一个用户想要修改一个 Temporary LOB 数据,但该数据与另一个 LOB 指针关联,则会发生该 Temporary LOB
数据的拷贝(deep copy)。那么指向该 LOB 数据的其它指针将会看到不同的数据。为了降低 deep copy,当将 Temporary LOB
作为参数传递时,使用 NOCOPY 线索;
* 通过调用 DBMS_LOB.COPY 过程,可以将 Temporary LOB 数据持久化到数据库中;
* 在一个会话中,Temporary LOB 指针是唯一的。不能将一个指针从一个会话传递到另一个会话,使得相关联的 LOB
数据在另一个会话中可用。
从 Oracle9i Database Release 1 开始,可以通过视图 v$temporary_lobs
来查看每个会话中有多少被缓存的和未被缓存的 LOBs。还可以通过数据字典 dba_segments 来查看每个会话中 LOB 占用的空间。