您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Oracle中如何創(chuàng)建和使用臨時表,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
ORACLE數(shù)據(jù)庫除了可以保存永久表外,還可以建立臨時表temporary tables。這些臨時表用來保存一個會話SESSION的數(shù)據(jù),或者保存在一個事務(wù)中需要的數(shù)據(jù)。當(dāng)會話退出或者用戶提交commit和回滾rollback事務(wù)的時候,臨時表的數(shù)據(jù)自動清空,但是臨時表的結(jié)構(gòu)以及元數(shù)據(jù)還存儲在用戶的數(shù)據(jù)字典中。
分類:
1.會話級臨時表
會話級臨時表是指臨時表中的數(shù)據(jù)只在會話生命周期之中存在,當(dāng)用戶退出會話結(jié)束的時候,Oracle自動清除臨時表中數(shù)據(jù)。
格式:
Create Global Temporary Table Table_Name ( Col1 Type1, Col2 Type2 ... ) On Commit Delete Rows; |
當(dāng)一個事務(wù)結(jié)束(commit or rollback),Oracle自動清除臨時表中數(shù)據(jù)。
下面在Oracle 10g中演示了臨時表的創(chuàng)建與使用:
1.創(chuàng)建事務(wù)級臨時表,插入一條數(shù)據(jù),并查詢:
create global temporary table session_temp_tb (col1 varchar(20)) on commit preserve rows; insert into session_temp_tb values('test'); select * from session_temp_tb; |
4..執(zhí)行commit或者rollback操作,表內(nèi)數(shù)據(jù)依然存在,新建一個命令窗口(相當(dāng)于開啟了一個新的會話),表內(nèi)的數(shù)據(jù)就查詢不到了:
5.如果創(chuàng)建會話臨時表的會話沒有結(jié)束,則無法刪除此臨時表,因?yàn)榕R時表,還在使用之中,但是結(jié)束會話(關(guān)閉創(chuàng)建會話級臨時表的命令窗口)后就可以刪除了:
關(guān)于Oracle中如何創(chuàng)建和使用臨時表就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。