oracle可以創(chuàng)建臨時(shí)表,ORACLE臨時(shí)表有兩種類(lèi)型:會(huì)話(huà)級(jí)的臨時(shí)表和事務(wù)級(jí)的臨時(shí)表。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括巢湖網(wǎng)站建設(shè)、巢湖網(wǎng)站制作、巢湖網(wǎng)頁(yè)制作以及巢湖網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,巢湖網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到巢湖省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
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ǔ)在用戶(hù)的數(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ì)話(huà)結(jié)束時(shí),臨時(shí)表的暫時(shí)段將隨著會(huì)話(huà)的結(jié)束而被丟棄,臨時(shí)表中的數(shù)據(jù)自然也就隨之丟棄。但是臨時(shí)表的結(jié)構(gòu)以及元數(shù)據(jù)還存儲(chǔ)在用戶(hù)的數(shù)據(jù)字典中。如果臨時(shí)表完成它的使命后,最好刪除臨時(shí)表,否則數(shù)據(jù)庫(kù)會(huì)殘留很多臨時(shí)表的表結(jié)構(gòu)和元數(shù)據(jù)。
1:會(huì)話(huà)級(jí)的臨時(shí)表的數(shù)據(jù)和你當(dāng)前會(huì)話(huà)有關(guān)系,當(dāng)前SESSION不退出的情況下,臨時(shí)表中的數(shù)據(jù)就還存在,臨時(shí)表的數(shù)據(jù)只有當(dāng)你退出當(dāng)前SESSION的時(shí)候才被截?cái)啵═RUNCATE
TABLE),如下所示:
會(huì)話(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)),這種類(lèi)型的臨時(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ì)話(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
Oracle創(chuàng)建臨時(shí)表的語(yǔ)法如下:
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ì)話(huà)特有的臨時(shí)表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
2) 事務(wù)特有的臨時(shí)表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
從數(shù)據(jù)庫(kù)用戶(hù)角度看,數(shù)據(jù)庫(kù)中的數(shù)據(jù)是以表、視圖等方式儲(chǔ)存的。那么用戶(hù)自己是怎么創(chuàng)建表的呢?簡(jiǎn)單的有兩種方式,一種是用戶(hù)可以在Oracle提供的SQL*Plus中使用CREATE TABLE語(yǔ)句創(chuàng)建表,也可以通過(guò)OEM圖形化工具創(chuàng)建表。
工具/材料
電腦
Oracle 10g
CREATE TABLE創(chuàng)建表
01
首先用戶(hù)必須要有CREATE TABLE系統(tǒng)權(quán)限,并且只能在自己的模式中創(chuàng)建表,圖中的例子使用CREATE TABLE語(yǔ)句在當(dāng)前模式中創(chuàng)建了一個(gè)共有5列的表:表的名稱(chēng)為employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等為數(shù)據(jù)類(lèi)型,括號(hào)里面為長(zhǎng)度。
02
如果想要在其他模式中創(chuàng)建表,則必須在表名前加上模式名,并且用戶(hù)還要有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)建表的組織形式”界面。在該界面中用戶(hù)可以選擇創(chuàng)建的表類(lèi)型---標(biāo)準(zhǔn)表、臨時(shí)表或索引表。
03
在選擇創(chuàng)建的表類(lèi)型后,單擊【繼續(xù)】按鈕,進(jìn)入如圖所示的“創(chuàng)建表”界面。在“名稱(chēng)”文本框中輸入要?jiǎng)?chuàng)建表的名稱(chēng)。系統(tǒng)在“方案”文本框中顯示當(dāng)前模式,這表示新創(chuàng)建的表將屬于該模式。
04
在“創(chuàng)建表”頁(yè)面中選擇“約束條件”選項(xiàng)卡,進(jìn)入如圖所示的“表約束條件”頁(yè)面。該頁(yè)面中用戶(hù)可以為創(chuàng)建的表定義約束條件,包括主鍵約束(PRIMARY)、唯一約束(UNIQUE)、檢查約束(CHECK)和外鍵(FOREIGN)約束。
05
設(shè)置儲(chǔ)存參數(shù),選擇“儲(chǔ)存”選項(xiàng)卡,進(jìn)入如圖所示的儲(chǔ)存設(shè)置界面,最后保存表格,單機(jī)【確定】按鈕,系統(tǒng)會(huì)根據(jù)用戶(hù)對(duì)表的設(shè)置,創(chuàng)建一個(gè)新表。
你這個(gè)#AA是臨時(shí)表的表名吧,起表名不能用#這樣的符號(hào)吧!
alter GLOBAL TEMPORARY TABLE AAA
ON COMMIT DELETE ROWS
AS
SELECT * FROM AA;
Oracle創(chuàng)建臨時(shí)表的語(yǔ)法如下:
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ì)話(huà)特有的臨時(shí)表
CREATE
GLOBAL
TEMPORARY
(
)
ON
COMMIT
PRESERVE
ROWS;
2)
事務(wù)特有的臨時(shí)表
CREATE
GLOBAL
TEMPORARY
(
)
ON
COMMIT
DELETE
ROWS;
CREATE
GLOBAL
TEMPORARY
TABLE
MyTempTable
新聞標(biāo)題:oracle怎么建臨時(shí)表,oracle如何建臨時(shí)表
URL分享:http://chinadenli.net/article40/hdoceo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、商城網(wǎng)站、定制開(kāi)發(fā)、動(dòng)態(tài)網(wǎng)站、建站公司、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)