- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle临时表总结
Oracle临时表总结临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别。它只能/存储在临时表空间,而非用户的表空间。ORACLE临时表是会话或事务级别的,只对当前会话或事务可见。每个会话只能查看和修改自己的数据。 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。 1)ON COMMIT DELETE ROWS 它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构 以及元数据还/存储在用户的数据字典中。如果临时表完成它的使命后,最好删除临时表,否则数据库会残留很多临时表的表结构和元数据。 2)ON COMMIT PRESERVE ROWS 它表示临时表的内容可以跨事物而存在,不过,当该会话结束时,临时表的暂时段将随着会话的结束而被丢弃,临时表中的数据自然也就随之丢弃。但是临时表的结构以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除临时表,否则数据库会残留很多临时表的表结构和元数据。 1:会话级的临时表的数据和你当前会话有关系,当前SESSION不退出的情况下,临时表中的数据就还存在,临时表的数据只有当你退出当前SESSION的时候才被截断(TRUNCATE TABLE),如下所示: 会话级别的临时表创建: CREATE GLOBAL TEMPORARY TABLE TMP_TEST ( ID NUMBER , NAME VARCHAR2(32) ) ON COMMIT PRESERVE ROWS; 或 CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT PRESERVE ROWS AS SELECT * FROM TEST; 操作示例: SQL CREATE GLOBAL TEMPORARY TABLE TMP_TEST ( ID NUMBER , NAME VARCHAR2(32) ) ON COMMIT PRESERVE ROWS; Table created SQL INSERT INTO TMP_TEST SELECT 1, kerry FROM DUAL; 1 row inserted SQL COMMIT; Commit complete SQL SELECT * FROM TMP_TEST; ID NAME ---------- ---------------- 1 kerry SQL INSERT INTO TMP_TEST SELECT 2, rouce FROM DUAL; 1 row inserted SQL ROLLBACK; Rollback complete SQL SELECT * FROM TMP_TEST; ID NAME ---------- ---------------------- 1 kerry SQL2:事务级的临时表(默认),这种类型的临时表与事务有关,当进行事务提交或者事务回滚的时候,临时表的数据将自行截断,即当COMMIT或ROLLBACK时,数据就会被TRUNCATE掉,其它的特性和会话级的临时表一致。 事务级临时表的创建方法: CREATE GLOBAL TEMPORARY TABLE TMP_TEST ( ID NUMBER , NAME VARCHAR2(32) ) ON COMMIT DELETE ROWS; 或 CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT DELETE AS SELECT * FROM TEST; SQL CREATE GLOBAL TEMPORARY TABLE TMP_TEST ( ID NUMBER , NAME VARCHAR2(32) ) ON COMMIT DELETE ROWS; Table created SQL INSERT INTO TMP_TEST SELECT 1, kerry FROM DUAL; 1 row inserted SQL SELECT * FROM TMP_TEST; ID NAME ---------- ---------------------- 1 kerry SQL COMMIT; Commit complete SQL SELECT * FROM TMP_TEST; ID NAME ---------- ---------
您可能关注的文档
最近下载
- 人教版六年级上册数学全册教学课件(2022年秋季新版).pptx
- 生理学基础(第4版)绪论电子课件 中职 电子教案 .ppt
- 新人教版数学五年级上册全册各单元教材解读精品课件PPT.pptx
- 零碳智慧园区全域双碳建设解决方案.pptx
- 糖尿病足个案.pptx
- JBT 7762-2018 内燃机气缸盖垫片 技术条件.pdf
- 财务管理专业 青岛金王集团应收账款管理存在的问题及对策分析研究.docx VIP
- NBT11422-2023 分布式光伏发电系统工程技术规范.pdf
- 2021-2022学年上海市静安区五年级上学期期末考试英语试卷含答案.pdf VIP
- 送出线路杆塔倒塌、断线事故应急预案.docx
文档评论(0)