首页 / ORACLE / Oracletemp表的简介
Oracletemp表的简介
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracletemp表的简介,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2368字,纯文字阅读大概需要4分钟。
内容图文
![Oracletemp表的简介](/upload/InfoBanner/zyjiaocheng/561/96aed5cf0f0e47b6bbab31e85046cc6c.jpg)
业务的实现过程中并不是所有的数据都是永久的存放在数据库中的,有些业务在实现的过程中会通过一些临时表或中间表去存放数据,当
【前言】今天开发人员遇到一个temp表找不到数据的问题,稍微了解了一下,感觉还有很多知识点的,所以整理下来供大家参考;
【简介】业务的实现过程中并不是所有的数据都是永久的存放在数据库中的,有些业务在实现的过程中会通过一些临时表或中间表去存放数据,当业务实现完成后临时表或中间表的数据就可以删除掉。基于这个业务特性,Oracle的GLOBAL TEMPORARY TABLE就满足了这个业务的功能;
【注】有些开发人员会创建一个实体表,就临时存放数据,当这个业务过程完成之后再把这个实体表drop掉,实现这个temp表的功能;
【详细介绍】
概念描述:临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。因此,临时表不需要DML锁。
当一个会话结束(用户正常退出 用户不正常退出ORACLE实例崩溃)或者一个事务结束的时候,Oracle对这个会话的表执行TRUNCATE 语句清空临时表数据。
但不会清空其它会话临时表中的数据,你可以索引临时表和在临时表基础上建立视图。同样,建立在临时表上的索引也是临时的,也是只对当前会话或者事务有效。
类别:Oracle临时表分为会话级临时表和事务级临时表。
会话级临时表:指临时表中的数据只在会话生命周期之中存在,,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
事务级临时表:指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。
【创建脚本】
ON COMMIT DELETE ROWS :建立事务级临时表的方法
脚本:
create global temporary table TEST1
( id number)
on commit delete rows ;
ON COMMIT PRESERVE ROWS :创建会话级临时表的方法
脚本:
create global temporary table TEST3
(id number)
on commit preserve rows ;
【实验操作】
一、创建global temporary table TEST1,插入数据1,在session1中查看数据;
对于global temporary table ,session之间是隔离的状态;
二、ON COMMIT DELETE ROWS的测试
数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。
三、ON COMMIT PRESERVE ROWS 会话级临时表的测试
进行COMMIT之后还能查询到插入的数据,虽然事务结束了,但是会话还是继续存在的;
退出之后重新登录,表中的数据已经被truncate,因为会话已经结束了,这是基于会话级别的临时表;
【总结】oracle的temp表的这两种模式已经能够满足实际的开发过程中的关于数据临时存放的问题了。理解技术就是为了更好的利用技术,理解了临时表的这两种设定,对于实际工作的进行有很大的帮助的;
本文永久更新链接地址:
内容总结
以上是互联网集市为您收集整理的Oracletemp表的简介全部内容,希望文章能够帮你解决Oracletemp表的简介所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。