PLSQL_Oracle暂且表Temporary Table基本概念和用法(概念)

2014-06-08 Created By BaoXinjian

**图片 1一、基本概念**


  1. 作者对一时表的接头:

在 Oracle
中创建一张表,那一个表不用于其余的什么出力,首要用于本人的软件系统部分特有成效才用的,而当你用完之后表中的数目就没用了。
Oracle
的一时表创造之后基本不占用表空间,即使你未曾点名临时表(包涵一时半刻表的目录)存放的表空的时候,你插入到目前表的多少是存放在
ORACLE 系统的临时表空间中( TEMP )。

  1. 基本概念

用于保存东西或会话时期的中游结果,只可对当时对话是可知的,其余任何会话都心有余而力不足进展读取,所以可会话并行性高。

  1. 如哪一天候使用一时半刻表
  • 当某1个 SQL 语句关联的表在 2
    张及以上,并且和局地小表关联。可以应用将大表进行分拆并且拿到相比较小的结果集合存放在权且表中。
  • 程序执行进程中可能要求寄放一些一时的数据,那几个数据在漫天程序的对话进度中都亟需用的等等。
  1. 目前表的不足之处
  • 不帮衬 lob
    对象,那只怕是设计者基于运转效能的考虑,但其实运用中真的必要此成效时就不能利用一时表了。
  • 不扶助主外键关系

 

图片 2二、类型


  1. 依照会话

(1). 概念

会话级的一时半刻表因为那那一个权且表中的数据和您的脚下对话有涉及,当你眼下SESSION
不脱离的情状下,暂且表中的数据就还存在,而当你退出当前SESSION
的时候,一时表中的数据就总体未曾了,当然那么些时候你假使以此外壹个SESSION
登陆的时候是看不到此外2个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, 一遍连续

  
事物指的是3个操作单元,要么成功或然退步,没有中间状态

  1. 会话–>v$seesion

   事务–>v$transaction

  1. 3个会话可以运行八个业务

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

相关文章