Oracle存儲過程中臨時表的使用技巧


Oracle存儲過程中臨時表的使用技巧
一、Oracle臨時表知識   

在Oracle中,臨時表分為SESSION(會話級)、TRANSACTION(事務級)兩種,SESSION級的臨時表數據在整個SESSION都存在,直到結束此次SESSION;而 TRANSACTION級的臨時表數據在TRANACTION結束后消失,即COMMIT/ROLLBACK或結束SESSION都會清除 TRANACTION臨時表數據。

  1. 會話級臨時表 示例

    1創建

    create global temporary table temp_tbl(col_a varchar2(30))

    on commit preserve rows

2插入數據

insert into temp_tbl values('test session table')

3提交

commit;

4查詢

select *from temp_tbl

可以看到數據'test session table'記錄還在。

結束SESSION,重新登錄,再查詢數據select *from temp_tbl,這時候記錄已不存在,因為系統在結束SESSION時自動清除記錄 。

  1. 事務級臨時表 示例

    1創建

    create global temporary table temp_tbl(col_a varchar2(30))

    on commit delete rows

    2插入數據

    insert into temp_tbl values('test transaction table')

    3提交

    commit ;

    4查詢

    select *from temp_tbl

這時候可以看到剛才插入的記錄'test transaction table'已不存在了,因為提交時已經晴空了數據庫;同樣,如果不提交而直接結束SESSION,重新登錄記錄也不存在 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM