博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Temporary Tables临时表
阅读量:7057 次
发布时间:2019-06-28

本文共 1035 字,大约阅读时间需要 3 分钟。

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:

转载于:https://www.cnblogs.com/lvxiaowei/p/4285991.html

你可能感兴趣的文章
2千五主机
查看>>
Ehcache学习笔记(二) 根据条件筛选缓存中的数据
查看>>
逻辑数据库设计 - 乱穿马路(多对多关系)
查看>>
Analysis Service Tabular Model #002 Analysis services 的结构:一种产品 两个模型
查看>>
PostgreSQL 的 pl/pgsql 的 cannot begin/end transactions in PL/pgSQL错误
查看>>
多线程编程之三——线程间通讯
查看>>
vs快捷键
查看>>
Oracle DBA常用查询
查看>>
修复Telerik reporting 在网页中使用时的样式
查看>>
Hackers’ Crackdown-----UVA11825-----DP+状态压缩
查看>>
Waiting Processed Cancelable ShowDialog
查看>>
[leetcode]Spiral Matrix
查看>>
hdu 1232 畅通工程(并查集)
查看>>
在github上写个人简历——先弄个主页
查看>>
用jquery实现遮罩层
查看>>
POJ 2229 Sumsets(技巧题, 背包变形)
查看>>
啥时候js单元测试变的重要起来?
查看>>
使用strtotime和mktime时参数为0时返回1999-11-30的时间戳问题
查看>>
php mysql 扩展安装
查看>>
Thrift架构~目录
查看>>