Oracle創建臨時表的語法如下:
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業 ”的價值觀,專業網站建設服務10余年為成都柴油發電機小微創業公司專業提供成都企業網站建設營銷網站建設商城網站建設手機網站建設小程序網站建設網站改版,從內容策劃、視覺設計、底層架構、網頁布局、功能開發迭代于一體的高端網站建設服務。
CREATE GLOBAL TEMPORARY TABLE table
"(" column datatype [DEFAULT expr] [{ NULL | NOT NULL}]
[, column datatype [DEFAULT expr] [ {NULL | NOT NULL} ]... ")"
ON COMMIT {DELETE | PRESERVE } ROWS ;
在Oracle中,可以創建以下兩種臨時表:
1) 會話特有的臨時表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
2) 事務特有的臨時表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
oracle可以創建臨時表,ORACLE臨時表有兩種類型:會話級的臨時表和事務級的臨時表。
1)ON COMMIT DELETE ROWS
它是臨時表的默認參數,表示臨時表中的數據僅在事物過程(Transaction)中有效,當事物提交(COMMIT)后,臨時表的暫時段將被自動截斷(TRUNCATE),但是臨時表的結構 以及元數據還存儲在用戶的數據字典中。如果臨時表完成它的使命后,最好刪除臨時表,否則數據庫會殘留很多臨時表的表結構和元數據。
2)ON COMMIT PRESERVE ROWS
它表示臨時表的內容可以跨事物而存在,不過,當該會話結束時,臨時表的暫時段將隨著會話的結束而被丟棄,臨時表中的數據自然也就隨之丟棄。但是臨時表的結構以及元數據還存儲在用戶的數據字典中。如果臨時表完成它的使命后,最好刪除臨時表,否則數據庫會殘留很多臨時表的表結構和元數據。
1:會話級的臨時表的數據和你當前會話有關系,當前SESSION不退出的情況下,臨時表中的數據就還存在,臨時表的數據只有當你退出當前SESSION的時候才被截斷(TRUNCATE TABLE),如下所示:
會話級別的臨時表創建:
CREATE GLOBAL TEMPORARY TABLE TMP_TEST
(
ID NUMBER ,
NAME VARCHAR2(32)
) ON COMMIT PRESERVE ROWS;
或
CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT PRESERVE ROWS
AS
SELECT * FROM TEST;
操作示例:
SQL CREATE GLOBAL TEMPORARY TABLE TMP_TEST
(
ID NUMBER ,
NAME VARCHAR2(32)
) ON COMMIT PRESERVE ROWS;
Table created
SQL INSERT INTO TMP_TEST
SELECT 1, 'kerry' FROM DUAL;
1 row inserted
SQL COMMIT;
Commit complete
SQL SELECT * FROM TMP_TEST;
ID NAME
---------- ----------------
1 kerry
SQL INSERT INTO TMP_TEST
SELECT 2, 'rouce' FROM DUAL;
1 row inserted
SQL ROLLBACK;
Rollback complete
SQL SELECT * FROM TMP_TEST;
ID NAME
---------- ----------------------
1 kerry
SQL
2:事務級的臨時表(默認),這種類型的臨時表與事務有關,當進行事務提交或者事務回滾的時候,臨時表的數據將自行截斷,即當COMMIT或ROLLBACK時,數據就會被TRUNCATE掉,其它的特性和會話級的臨時表一致。
事務級臨時表的創建方法:
CREATE GLOBAL TEMPORARY TABLE TMP_TEST
(
ID NUMBER ,
NAME VARCHAR2(32)
) ON COMMIT DELETE ROWS;
或
CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT DELETE AS SELECT * FROM TEST;
SQL CREATE GLOBAL TEMPORARY TABLE TMP_TEST
(
ID NUMBER ,
NAME VARCHAR2(32)
) ON COMMIT DELETE ROWS;
Table created
SQL INSERT INTO TMP_TEST
SELECT 1, 'kerry' FROM DUAL;
1 row inserted
SQL SELECT * FROM TMP_TEST;
ID NAME
---------- ----------------------
1 kerry
SQL COMMIT;
Commit complete
SQL SELECT * FROM TMP_TEST;
ID NAME
---------- ------------------------
SQL
從數據庫用戶角度看,數據庫中的數據是以表、視圖等方式儲存的。那么用戶自己是怎么創建表的呢?簡單的有兩種方式,一種是用戶可以在Oracle提供的SQL*Plus中使用CREATE TABLE語句創建表,也可以通過OEM圖形化工具創建表。
工具/材料
電腦
Oracle 10g
CREATE TABLE創建表 01
首先用戶必須要有CREATE TABLE系統權限,并且只能在自己的模式中創建表,圖中的例子使用CREATE TABLE語句在當前模式中創建了一個共有5列的表:表的名稱為employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等為數據類型,括號里面為長度。
02
如果想要在其他模式中創建表,則必須在表名前加上模式名,并且用戶還要有CREATE ANY TABLE系統權限,例如圖中語句將在SYSTEM模式中創建employees1表
OEM創建表 01
在OEM主界面中選擇【管理】選項卡,進入如圖所示的數據庫管理界面;然后在“數據庫對象”中單擊【表】選項。
02
系統進入管理表界面,在該頁面中單擊【創建】按鈕,進入如圖所示的“創建表的組織形式”界面。在該界面中用戶可以選擇創建的表類型---標準表、臨時表或索引表。
03
在選擇創建的表類型后,單擊【繼續】按鈕,進入如圖所示的“創建表”界面。在“名稱”文本框中輸入要創建表的名稱。系統在“方案”文本框中顯示當前模式,這表示新創建的表將屬于該模式。
04
在“創建表”頁面中選擇“約束條件”選項卡,進入如圖所示的“表約束條件”頁面。該頁面中用戶可以為創建的表定義約束條件,包括主鍵約束(PRIMARY)、唯一約束(UNIQUE)、檢查約束(CHECK)和外鍵(FOREIGN)約束。
05
設置儲存參數,選擇“儲存”選項卡,進入如圖所示的儲存設置界面,最后保存表格,單機【確定】按鈕,系統會根據用戶對表的設置,創建一個新表。
網站標題:oracle如何創建臨時表 oracle創建臨時表 sql
標題來源:http://m.newbst.com/article26/hjhicg.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、定制網站、動態網站、網站排名、響應式網站、網站設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯