[Oracle整理]临时表
说明:本内容是工作用到的知识点整理,来自工作中和网络。
代码于Oracle9上测试。
作用:
1. 可以用來提高程式運行效率
2. 可以讓用戶只能夠操作各自的數據而互不
干擾,不用擔心會破壞或影響其他Session
/transaction的數據,這也是數據安全的一
種解決方法
缺點:
Oracle 臨時表無法建立主外鍵,也不支持LOB对象
類別:
1. TRANSACTION級臨時表 (事務級的臨時表)
2. SESSION級臨時表 (會話級的臨時表)
語法:
SESSION级临时表 :
create global temporary table table_name(col1 type1,col2 type2...)
on commit preserve rows;
TRANSACTION级临时表 :
create global temporary table table_name(col1 type1,col2 type2...)
on commit delete rows;
創建
Sql server 利用SELECT语句与CREAT语句创建临时表,
是在需要使用的時候才進行創建
当结束会话时,不仅表中的数据被清空了,
而且该表也被删除了
Oracle 的臨時表是先建立好,在使用到的時候直接調用即
可,臨時表是永久性的,只是表的內容是臨時的
數據釋放
Sql有两种临时表,一种是本地临时表,一种是全局临时表。
Oracle 的臨時表的數據是獨立的,用戶只能看到自己建立的數據,對於數據安全性來說是非常有保證的
特點
1,临时表的结构以及元数据存储在用户的数据字典中
2,DML操作的临时表不产生redo log重作日志,但会产生回滚日志Undo log;Undo的产生(rollback segment)会产生Redo log。
3,可以索引临时表,建立在临时表上的索引也是临时的
4,可以在临时表基础上建立视图
5,可以拥有触发器.
學習資料
http://space.itpub.net/8570952/viewspace-207199#xspace-tracks
http://www.cnblogs.com/zqmingok/archive/2009/12/17/1626673.html