本篇文章給大家帶來了關于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;
2.2、會話級臨時表
-- 創建會話級臨時表 tmp_user1create global temporary table tmp_user1 ( user_id varchar2(10), user_name varchar2(20))on commit preserve rows;
三、臨時表說明
- 臨時表的數據是基于一個會話或一個事務的,其它的會話不能訪問到。
-
臨時表可專用于事務處理,也可專用于會話。對于專用于事務處理的臨時表而言,數據存在于事務處理期間;對于專用于會話的臨時表而言,數據存在于會話期間。在這兩種情況下,會話插入的數據專用于會話。每個會話僅可查看和修改自己的數據。因此,臨時表的數據從不會獲得 DML 鎖
推薦教程:《oracle》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END