實例詳解Oracle臨時表

本篇文章給大家帶來了關于oracle的相關知識,其中主要介紹了關于臨時表的相關問題,包括了事務級臨時表、會話級臨時表等等內容,下面一起來看一下,希望對大家有幫助。

實例詳解Oracle臨時表

推薦教程:《oracle

一、oracle 臨時表

臨時表是一種特殊的表。當我們需要對某一(也可以是多個)表中的一批數據進行反復的操作時,通過對這批數據創建一個臨時表,可能會簡化操作并且有可能提高效率!

基本語法:

create global temporary table 臨時表名(colum,colum,.......)on commit delete rows;on commit preserve rows;

說明:

  • on commit delete rows; 說明數據行只有在當前事務中可見,也是默認值,事務提交后數據行將消失;創建的是事務級臨時表。
  • on commit preserve rows; 說明數據行僅在當前會話中可見;創建的是會話級臨時表。

二、示例演示

2.1、事務級臨時表

-- 創建事務級臨時表 tmp_user 注:on commit delete rows 可省略create global temporary table tmp_user (   user_id   varchar2(10),   user_name varchar2(20)) on commit delete rows;

實例詳解Oracle臨時表
實例詳解Oracle臨時表

2.2、會話級臨時表

-- 創建會話級臨時表 tmp_user1create global temporary table tmp_user1 (   user_id   varchar2(10),   user_name varchar2(20))on commit preserve rows;

實例詳解Oracle臨時表

實例詳解Oracle臨時表

三、臨時表說明

  • 臨時表的數據是基于一個會話或一個事務的,其它的會話不能訪問到。
  • 臨時表可專用于事務處理,也可專用于會話。對于專用于事務處理的臨時表而言,數據存在于事務處理期間;對于專用于會話的臨時表而言,數據存在于會話期間。在這兩種情況下,會話插入的數據專用于會話。每個會話僅可查看和修改自己的數據。因此,臨時表的數據從不會獲得 DML 鎖

推薦教程:《oracle

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享