在oracle中,預存程序的臨時表是一個用於暫時儲存資料的表;當交易或會話結束的時候,臨時表中的資料就會被資料庫自動清空,臨時表可以根據生命週期的不同分為事務級臨時表和會話級臨時表,創建語法為「create global temporary table 臨時表名on commit preserve/delete rows」。
本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。
臨時表語法:
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. 在下列測試中,建立暫存表後,資訊查詢 SESSION等級的臨時表格資料在整個SESSION都存在,直到結束此次SESSION;而TRANSACTION等級的臨時表資料在TRANACTION結束後消失,即COMMIT/ROLLBACK或結束SESSION都會清除TRANACTION臨時表資料。 當會話退出或使用者提交commit和回滾rollback交易的時候,臨時表的資料會自動清空,但是臨時表的結構以及元資料也儲存在使用者的資料字典中。當一個會話結束(用戶正常退出、用戶不正常退出、ORACLE實例崩潰)或一個事務結束的時候,Oracle對這個會話的表執行TRUNCATE 語句清空臨時表數據,但不會清空其它會話臨時表中的數據。臨時表可以使用觸發器。 推薦教學:《
Oracle影片教學》
以上是oracle儲存過程中的暫存表是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!