版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2003年1月17日星期五 11:31 1 Temporary Tables临时表 目录 1简介 2 详细介绍 3 建立临时表 4 与SQL SERVER 的异同 1简介 ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,但是临时表的结构以及元数据还存储在用户的数据字典中。 In addition to permanent tables, Oracle can create tempor
2、ary tables to hold session-private data that exists only for the duration of a transaction or session. Temporary tables are supported by Oracle9i and Oracle8i. 2详细介绍 Oracle临时表分为 会话级临时表 和 事务级临时表。 会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。 事务级临时表是指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or r
3、ollback),Oracle自动清除临时表中数据。 临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。因此,临时表不需要DML锁。 2003年1月17日星期五 11:31 2 The CREATE GLOBAL TEMPORARY TABLE statement creates a temporary table that can be transaction-specific or session-specific. For transaction-specific temporary tables, data
4、exists for the duration of the transaction. For session-specific temporary tables, data exists for the duration of the session. Data in a temporary table is private to the session. Each session can only see and modify its own data. DML locks are not acquired on the data of the temporary tables. The
5、LOCK statement has no effect on a temporary table, because each session has its own private data. 当一个会话结束(用户正常退出 用户不正常退出 ORACLE实例崩溃)或者一个事务结束的时候,Oracle对这个会话的表执行 TRUNCATE 语句清空临时表数据.但不会清空其它会话临时表中的数据. A TRUNCATE statement issued on a session-specific temporary table truncates data in its own session. It
6、 does not truncate the data of other sessions that are using the same table. DML statements on temporary tables do not generate redo logs for the data changes. However, undo logs for the data and redo logs for the undo logs are generated. Data from the temporary table is automatically dropped in the
7、 case of session termination, either when the user logs off or when the session terminates abnormally such as during a session or instance failure. 你可以索引临时表和在临时表基础上建立视图.同样,建立在临时表上的索引也是临时的,也是只对当前会话或者事务有效. 临时表可以拥有触发器. You can create indexes for temporary tables using the CREATE INDEX statement. Indexe
8、s created on temporary tables are also temporary, and the data in the index has the same session or transaction scope as the data in the temporary table. You can create views that access both temporary and permanent tables. You can also create triggers on temporary tables. 3建立临时表 临时表的定义对所有会话SESSION都
9、是可见的,但是表中的数据只对当前的会话或者事务有效. 建立方法: 1) ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法. 2003年1月17日星期五 11:31 3 CREATE GLOBAL TEMPORARY TABLE admin_work_area (startdate DATE, enddate DATE, class CHAR(20) ON COMMIT DELETE ROWS; EXAMPLE: SQL CREATE GLOBAL TEMPORARY TABLE admin_work_area 2 (startdate DATE, 3 enddate D
10、ATE, 4 class CHAR(20) 5 ON COMMIT DELETE ROWS; SQL create table permernate( a number); SQL insert into admin_work_area values(sysdate,sysdate,temperary table); SQL insert into permernate values(1); SQL commit; SQL select * from admin_work_area; SQL select * from permernate; A 1 2)ON COMMIT PRESERVE
11、ROWS 定义了创建会话级临时表的方法. CREATE GLOBAL TEMPORARY TABLE admin_work_area (startdate DATE, enddate DATE, class CHAR(20) ON COMMIT PRESERVE ROWS; EXAMPLE: 会话1: SQL drop table admin_work_area; SQL CREATE GLOBAL TEMPORARY TABLE admin_work_area 2 (startdate DATE, 3 enddate DATE, 4 class CHAR(20) 5 ON COMMIT PR
12、ESERVE ROWS; 2003年1月17日星期五 11:31 4 SQL insert into permernate values(2); SQL insert into admin_work_area values(sysdate,sysdate,session temperary); SQL commit; SQL select * from permernate; A - 1 2 SQL select * from admin_work_area; STARTDATE ENDDATE CLASS - - - 17-1? -03 17-1? -03 session temperary
13、 会话2: SQL select * from permernate; A - 1 2 SQL select * from admin_work_area; 未选择行. 会话2看不见会话1中临时表的数据. 4 ORACLE临时表和SQLSERVER临时表异同 SQL SERVER临时表 也可以创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft? SQL Server? 2000 实
14、例断开连接时被删除。全局临时表2003年1月17日星期五 11:31 5 的名称以数学符号 (#) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 #employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表 不同: 1. SQL SERVER临时表是一种”内存表”,表是存储在内存中的.ORACLE临时表除非执行DROP TABLE,否则表定义会保留在数据字典中. 2. SQL SERVER临时表不存在类似ORACLE临时表 事务级别 上的功能. 3 SQL SERVER本地临时表(#) 与 ORACLE的会话级别临时表类似,但是在会话退出的时候,ORACLE不会删除表. 4 SQL SERVER的全局临时表(#) 是指多个连接共享同一片内存.当没有指针引用该内存区域时,SQL SERVER自动释放全局临时表. 5 由于O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇科护理中的患者教育与管理
- 心肌病患者的护理质量改进
- 插花与花艺设计(第4版)课件 项目1 插花花艺基本知识
- 冬季XX县XX农村自建房消防安全隐患排查
- 2024-2025学年度计算机四级试题预测试卷带答案详解(典型题)
- 2024-2025学年度电梯考试模考模拟试题含答案详解【突破训练】
- 2024-2025学年度医院三基考试考前冲刺试卷含完整答案详解(各地真题)
- 2024-2025学年度公务员考试《常识》测试卷及参考答案详解【模拟题】
- 2024-2025学年度医院三基考试模拟试题含答案详解(培优)
- 2026年医保报销政策试题及答案
- 20万吨-年采矿废石综合回收利用项目环境影响报告书
- 企业内部福利待遇制度
- 2026年甘肃事业单位联考笔试易考易错模拟试题(共500题)试卷后附参考答案
- 七下综合世界真奇妙-共享“地球村”
- 大学英语2 UNIT6课件
- 《分数、百分数应用题复习》课件
- 截肢平面的选择
- HACCP计划的制定与实施课件
- 初中体育课-立定跳远教案
- 新教材青岛版五年级下册科学4.心脏和血管教学课件
- 宠物店创业计划书PPT模板
评论
0/150
提交评论