日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle临时表的优点,详解Oracle临时表的几种用法和意义

發布時間:2024/1/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle临时表的优点,详解Oracle临时表的几种用法和意义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

舉例:

create global temporary table Classes

(Class_id Number(5),

Class_Name Varchar2(8),

Class_Memo varchar2(200)) on Commit delete Rows ;

3) 兩中類型臨時表的區別

會話級臨時表采用 on commit preserve rows ;而事務級則采用 on commit delete rows ;用法上,會話級別只有當會話結束臨時表中的數據才會被截斷,而且事務級臨時表則不管是 commit 、 rollback 或者是會話結束,臨時表中的數據都將被截斷

4 )什么時候使用臨時表

1 )、當某一個 SQL 語句關聯的表在 2 張及以上,并且和一些小表關聯。可以采用將大表進行分拆并且得到比較小的結果集合存放在臨時表中

2 )、程序執行過程中可能需要存放一些臨時的數據,這些數據在整個程序的會話過程中都需要用的等等。

3 . 例子:略

4 .臨時表的不足之處

1 )不支持 lob 對象,這也許是設計者基于運行效率的考慮,但實際應用中確實需要此功能時就無法使用臨時表了。

2 )不支持主外鍵關系

所以,由于以上原因,我們可以自己創建臨時表,以彌補 oracle 臨時表的不足之處

上面的都是本人經過測試的,但下面是在網上搜索到的方法,本人具體沒有測試過,不過覺得可行性很強,有時間測試下。

創建方法:

1 、以常規表的形式創建臨時數據表的表結構,但要在每一個表的主鍵中加入一個 SessionID 列以區分不同的會話。(可以有 lob 列和主外鍵)

2 、寫一個用戶注銷觸發器,在用戶結束會話的時候刪除本次會話所插入的所有記錄 (SessionID 等于本次會話 ID 的記錄 ) 。

3 、程序寫入數據時,要順便將當前的會話 ID(SessionID) 寫入表中。

4 、程序讀取數據時,只讀取與當前會話 ID 相同的記錄即可。

功能增強的擴展設計:

1 、可以在數據表上建立一個視圖,視圖對記錄的篩選條件就是當前會話的SessionID 。

2 、數據表中的SessionID 列可以通過Trigger 實現,以實現對應用層的透明性。

3 、高級用戶可以訪問全局數據,以實現更加復雜的功能。

擴展臨時表的優點:

1 、實現了與Oracle 的基于會話的臨時表相同的功能。

2 、支持SDO_GEOMETRY 等lob 數據類型。

3 、支持表間的主外鍵連接,且主外鍵連接也是基于會話的。

4 、高級用戶可以訪問全局數據,以實現更加復雜的功能。

22/2<12

總結

以上是生活随笔為你收集整理的oracle临时表的优点,详解Oracle临时表的几种用法和意义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。