时间:2021-07-01 10:21:17 帮助过:13人阅读
说明:
执行插入语句后,如果没有提交,执行查询语句,该表有数据;如果提交事务,执行查询语句,该表没数据。
详细介绍
参考链接:http://www.cnblogs.com/vigarbuaa/archive/2012/06/04/2534797.html
在Oracle8i中,可以创建以下两种临时表:
(1)会话特有的临时表
语法:
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>) ON COMMIT PRESERVE ROWS;
(2)事务特有的临时表
语法:
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>) ON COMMIT DELETE ROWS;
举例:
CREATE GLOBAL TEMPORARY TABLE MyTempTable
区别:
ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(清空表数据)
ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(清空表数据)
作用域:
通过CREATE GLOBAL TEMPORARY TABLE命令创建一个临时表,
对于事务类型的临时表,数据只是在本事务期间存在;对于会话类型的临时表,数据在本会话期间存在。
临时表的特点:
可以对临时表创建索引,视图,触发器,可以用export和import工具导入导出表的定义,但是不能导出数据。表的定义对所有的会话可见。
(1) 多用户操作的独立性:对于使用同一张临时表的不同用户,ORACLE都会分配一个独立的 Temp Segment,这样就避免了多个用户在对同一张临时表操作时发生交叉,从而保证了多个用户操作的并发性和独立性;
(2) 数据的临时性:既然是临时表,顾名思义,存放在该表中的数据是临时性的。ORACLE根据你创建临时表时指定的参数(On Commit Delete Rows / On Commit Preserve Rows),自动将数据TRUNCATE掉。
ORACLE-临时表
标签:.com 清空 get 根据 监控 rom commit ble 独立