Oracle临时表

Oracle临时表

1概念理解

ORACLE系统的临时表常被用于存放系统操作的中间数据,由于对临时的任何操作都不产生redo(但会因为修改undo而产生redo),所以临时表的数据操作效率一般都比较高。常用的临时表主要有两类,一类是基于事务的临时表,一类是基于会话的临时表,基于事务的临时表是只有当事务被提交或回滚时,临时表的数据才会被清空;基于会话的临时表是只有当会话结束时,临时表的数据才会被清空,两种类型的临时表数据都是对当前会话可见。

2基于事务的临时表

创建一张基于事务的临时表:

Oracle临时表

在这里我们创建了一张基于事务的临时表,且在创建的时候我们已经插入了数据,为什么再查询的时候就没有数据了呢?这是因为基于事务的临时表当事务回滚或提交时就立刻清空数据,而此时DDL语句操作会隐含一个commit动作,自动提交,从而触发了清空数据表。

我们再插入一次:

Oracle临时表

3基于会话的临时表

创建基于会话的临时表TEMP2:

Oracle临时表

Oracle临时表

Oracle临时表

4临时表的索引

Oracle临时表

Oracle临时表

Oracle临时表

5临时表的一些限制

Oracle临时表