首頁 >資料庫 >Oracle >oracle儲存過程中的暫存表是什麼

oracle儲存過程中的暫存表是什麼

WBOY
WBOY原創
2022-06-13 15:16:384153瀏覽

在oracle中,預存程序的臨時表是一個用於暫時儲存資料的表;當交易或會話結束的時候,臨時表中的資料就會被資料庫自動清空,臨時表可以根據生命週期的不同分為事務級臨時表和會話級臨時表,創建語法為「create global temporary table 臨時表名on commit preserve/delete rows」。

oracle儲存過程中的暫存表是什麼

本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。

oracle預存程​​序中的臨時表

臨時表語法:

create global temporary table 临时表名 on commit preserve/delete rows  
--preserve:SESSION级的临时表,delete:TRANSACTION级的临时表.

1. 作用:用來'臨時' 儲存資料

   (1) 當一個事務或會話結束的時候,這個臨時表中的'資料' 會被資料庫自動清空

   (2) 但'表格結構' 依舊保留

2. 分類: '生命週期的不同 '

##   (1) 事務級臨時表: on commit delete rows;   commit 時'刪除' 記錄(預設)

(2) 會話級臨時表: on commit preserve rows; commit 時'儲存' 記錄,結束會話時'刪除' 記錄

3. 注意

#   (1 ) 臨時表處理的效率高於一般表

        不記錄 '日誌'

        只能當前使用者使用,不會產生'鎖定'

   (2) 和一般表格操作方式一樣

4. 在下列測試中,建立暫存表後,資訊查詢

oracle儲存過程中的暫存表是什麼

SESSION等級的臨時表格資料在整個SESSION都存在,直到結束此次SESSION;而TRANSACTION等級的臨時表資料在TRANACTION結束後消失,即COMMIT/ROLLBACK或結束SESSION都會清除TRANACTION臨時表資料。 

 當會話退出或使用者提交commit和回滾rollback交易的時候,臨時表的資料會自動清空,但是臨時表的結構以及元資料也儲存在使用者的資料字典中。當一個會話結束(用戶正常退出、用戶不正常退出、ORACLE實例崩潰)或一個事務結束的時候,Oracle對這個會話的表執行TRUNCATE 語句清空臨時表數據,但不會清空其它會話臨時表中的數據。臨時表可以使用觸發器。

推薦教學:《

Oracle影片教學

以上是oracle儲存過程中的暫存表是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn