PLSQL_Oracle临时表Temporary Table基本概念和用法(概念)

2014-06-08 Created By BaoXinjian

**图片 1同样、基本概念**


  1. 自己对临时表的敞亮:

于 Oracle
中创造同摆表,这个发明不用于其它的呀作用,主要用来协调的软件系统有独自发力量才用的,而当你用了事后表中的数码就从不因此了。
Oracle
的临时表创建之后基本不占用表空间,如果你莫点名临时表(包括临时表的目)存放的表空的时刻,你插入到临时表的数是存于
ORACLE 系统的临时表空间中( TEMP )。

  1. 基本概念

用以保存东西还是会话期间的中等结果,只可对当下对话是可见的,其他任何会话都心有余而力不足进展读取,所以只是会说话并行性高。

  1. 嗬时以临时表

  2. 当某一个 SQL 语句关联的阐发在 2
    张及以上,并且与组成部分小表关联。可以运用用大表进行分拆并且得到比较小之结果集合存放于临时表中。

  3. 程序执行过程遭到或需要寄放有临时之多少,这些多少在整整程序的对话过程遭到都亟待为此的等等。

  4. 临时表的不足之处

  5. 匪支持 lob
    对象,这也许是设计者基于运行效率的设想,但实际上利用中诚用以此功效时即便无法用临时表了。

  6. 免支持主外键关系

 

图片 2二、类型


  1. 基于会话

(1). 概念

会晤话级的临时表因为马上是临时表中之数据以及您的此时此刻对话有关系,当您手上SESSION
不脱的气象下,临时表中的数目就还存在,而当你离时SESSION
的时,临时表中之多少就不折不扣未曾了,当然是上你只要盖另外一个SESSION
登陆的时候是看不到另外一个SESSION
中插入到临时表中的数目的。即有限个不同之SESSION
所插入的数额是互不相干的。当有一个SESSION
退出后临时表中的多寡就是为截断(truncate table ,即数据清空)了。

(2). 语法  

CREATE GLOBAL TEMPORARY TABLE
xxgl.xxgl_test_journal(

    je_id NUMBER,

    je_name VARCHAR(100 BYTE)

)on commit persever rows

 

  1. 基于事物

(1). 概念

事务级临时表是依赖该临时表与事务相关,当进行工作提交或者工作回滚的早晚,临时表中之多少以自行被截断,其他的始末和见面话级的临时表的同样(包括退出SESSION
的时,事务级的临时表也会叫电动截断)。

(2). 语法  

CREATE GLOBAL TEMPORARY TABLE
xxgl.xxgl_test_journal(

    je_id NUMBER,

    je_name VARCHAR(100 BYTE)

)on commit delete rows

 

图片 3老三、事物与对话的区别


  1. 会面话指的凡session, 一蹩脚连续

  
事物指的凡一个操作单元,要么成功还是失败,没有中间状态

  1. 会话–>v$seesion

   事务–>v$transaction

  1. 一个会话可以启动多只业务

4.会话和物临时表区别

会见话级临时表采用 on commit preserve rows
;

倘若事务级则使 on commit delete rows
;

故法及,会话级别只有当会说话了临时表中的数量才会叫截断,而且事务级临时表则凭是
commit 、 rollback 或者是碰头讲话了,临时表中之数额还以让截断;

 

图片 4季、一个简约的例证


CREATE GLOBAL TEMPORARY TABLE
xxgl.xxgl_test_journal(

    je_id NUMBER,

    je_name VARCHAR(100 BYTE)

)ON COMMIT DELETE ROWS;

 

Thanks and Regards

图片 5

相关文章