Temporary Tables临时表
1简介
ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保存一个会话SESSION的数据,
或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,
但是临时表的结构以及元数据还存储在用户的数据字典中。
临时表只在oracle8i以及以上产品中支持。
2详细介绍
Oracle临时表分为 会话级临时表和事务级临时表。
会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
事务级临时表是指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。
临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。因此,
临时表不需要DML锁.当一个会话结束(用户正常退出 用户不正常退出 ORACLE实例崩溃)或者一个事务结束的时候,Oracle对这个会话的表执行 TRUNCATE 语句清空临时表数据.但不会清空其它会话临时表中的数据.
你可以索引临时表和在临时表基础上建立视图.同样,建立在临时表上的索引也是临时的,也是只对当前会话或者事务有效.
临时表可以拥有触发器.
3建立临时表
临时表的定义对所有会话SESSION都是可见的,但是表中的数据只对当前的会话或者事务有效.
建立方法:
1) ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法.
CREATE GLOBAL TEMPORARY TABLE admin_work_area
(startdate DATE,
enddate DATE,
class CHAR(20))
ON COMMIT DELETE ROWS;
2)ON COMMIT PRESERVE ROWS 定义了创建会话级临时表的方法.
CREATE GLOBAL TEMPORARY TABLE admin_work_area
(startdate DATE,
enddate DATE,
class CHAR(20))
ON COMMIT PRESERVE ROWS;
EXAMPLE:
最新文章
- BizTalk开发系列(二十六) 使用Web Service
- 【BZOJ 3282】Tree Link Cut Tree模板题
- Java for LeetCode 164 Maximum Gap
- 【Django】Apache上运行单个Django项目,mod_wsgi配置
- TFS使用指南
- Java学习笔记(五):异常处理
- eclipse 好用的快捷键
- 分享自己动手弄的基于Rime的新世纪五笔输入法码表
- cf754D
- 使用 CAS 在 Tomcat 中实现单点登录
- COJ 0581 4022农夫喂牛
- sqlserver中的锁与事务
- OpenJTAG+Eclipse 3.5+GDB+Mini2440图文教程
- Ubuntu系统下将默认的python2.7升级到3.5
- [dsu on tree]【学习笔记】
- 福州大学软件工程1916|W班 第5次作业成绩排名
- C connect实现Timeout效果(Linux)
- 使用Admin监控
- Gym 101810
- Charles 抓包工具