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