oracle可以創(chuàng)建臨時表,ORACLE臨時表有兩種類型:會話級的臨時表和事務級的臨時表。
洪湖網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)公司。
1)ON COMMIT DELETE ROWS
它是臨時表的默認參數(shù),表示臨時表中的數(shù)據(jù)僅在事物過程(Transaction)中有效,當事物提交(COMMIT)后,臨時表的暫時段將被自動截斷(TRUNCATE),但是臨時表的結構 以及元數(shù)據(jù)還存儲在用戶的數(shù)據(jù)字典中。如果臨時表完成它的使命后,最好刪除臨時表,否則數(shù)據(jù)庫會殘留很多臨時表的表結構和元數(shù)據(jù)。
2)ON COMMIT PRESERVE ROWS
它表示臨時表的內(nèi)容可以跨事物而存在,不過,當該會話結束時,臨時表的暫時段將隨著會話的結束而被丟棄,臨時表中的數(shù)據(jù)自然也就隨之丟棄。但是臨時表的結構以及元數(shù)據(jù)還存儲在用戶的數(shù)據(jù)字典中。如果臨時表完成它的使命后,最好刪除臨時表,否則數(shù)據(jù)庫會殘留很多臨時表的表結構和元數(shù)據(jù)。
1:會話級的臨時表的數(shù)據(jù)和你當前會話有關系,當前SESSION不退出的情況下,臨時表中的數(shù)據(jù)就還存在,臨時表的數(shù)據(jù)只有當你退出當前SESSION的時候才被截斷(TRUNCATE TABLE),如下所示:
會話級別的臨時表創(chuàng)建:
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:事務級的臨時表(默認),這種類型的臨時表與事務有關,當進行事務提交或者事務回滾的時候,臨時表的數(shù)據(jù)將自行截斷,即當COMMIT或ROLLBACK時,數(shù)據(jù)就會被TRUNCATE掉,其它的特性和會話級的臨時表一致。
事務級臨時表的創(chuàng)建方法:
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創(chuàng)建臨時表的語法如下:
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中,可以創(chuàng)建以下兩種臨時表:
1)
會話特有的臨時表
CREATE
GLOBAL
TEMPORARY
(
)
ON
COMMIT
PRESERVE
ROWS;
2)
事務特有的臨時表
CREATE
GLOBAL
TEMPORARY
(
)
ON
COMMIT
DELETE
ROWS;
CREATE
GLOBAL
TEMPORARY
TABLE
MyTempTable
從數(shù)據(jù)庫用戶角度看,數(shù)據(jù)庫中的數(shù)據(jù)是以表、視圖等方式儲存的。那么用戶自己是怎么創(chuàng)建表的呢?簡單的有兩種方式,一種是用戶可以在Oracle提供的SQL*Plus中使用CREATE TABLE語句創(chuàng)建表,也可以通過OEM圖形化工具創(chuàng)建表。
工具/材料
電腦
Oracle 10g
CREATE TABLE創(chuàng)建表
首先用戶必須要有CREATE TABLE系統(tǒng)權限,并且只能在自己的模式中創(chuàng)建表,圖中的例子使用CREATE TABLE語句在當前模式中創(chuàng)建了一個共有5列的表:表的名稱為employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等為數(shù)據(jù)類型,括號里面為長度。
如果想要在其他模式中創(chuàng)建表,則必須在表名前加上模式名,并且用戶還要有CREATE ANY TABLE系統(tǒng)權限,例如圖中語句將在SYSTEM模式中創(chuàng)建employees1表
OEM創(chuàng)建表
在OEM主界面中選擇【管理】選項卡,進入如圖所示的數(shù)據(jù)庫管理界面;然后在“數(shù)據(jù)庫對象”中單擊【表】選項。
系統(tǒng)進入管理表界面,在該頁面中單擊【創(chuàng)建】按鈕,進入如圖所示的“創(chuàng)建表的組織形式”界面。在該界面中用戶可以選擇創(chuàng)建的表類型---標準表、臨時表或索引表。
在選擇創(chuàng)建的表類型后,單擊【繼續(xù)】按鈕,進入如圖所示的“創(chuàng)建表”界面。在“名稱”文本框中輸入要創(chuàng)建表的名稱。系統(tǒng)在“方案”文本框中顯示當前模式,這表示新創(chuàng)建的表將屬于該模式。
在“創(chuàng)建表”頁面中選擇“約束條件”選項卡,進入如圖所示的“表約束條件”頁面。該頁面中用戶可以為創(chuàng)建的表定義約束條件,包括主鍵約束(PRIMARY)、唯一約束(UNIQUE)、檢查約束(CHECK)和外鍵(FOREIGN)約束。
設置儲存參數(shù),選擇“儲存”選項卡,進入如圖所示的儲存設置界面,最后保存表格,單機【確定】按鈕,系統(tǒng)會根據(jù)用戶對表的設置,創(chuàng)建一個新表。
Oracle創(chuàng)建臨時表的語法如下:
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中,可以創(chuàng)建以下兩種臨時表:
1) 會話特有的臨時表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
2) 事務特有的臨時表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
分享標題:oracle臨時表怎么建 創(chuàng)建臨時表oracle
文章網(wǎng)址:http://muchs.cn/article8/hgspop.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站內(nèi)鏈、網(wǎng)站營銷、App設計、App開發(fā)、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)