国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle中自定義臨時表的實現及其在Oracle Spatial中的應用

2024-08-29 13:29:27
字體:
來源:轉載
供稿:網友

oracle 臨時表功能介紹:
         oracle中的臨時表是全局的,需要在數據庫設計時創建完成,而不是程序使用時。每個登陸用戶都使用這一個相同的臨時表,但互相之間看不到彼此的數據,也就是說臨時表是會話獨立的。
         oracle 的臨時表分為事務型和會話型。
         事務型臨時表就是指在事務處理過程中插入的記錄只在事務提交或回滾之前有效,一旦事務完成,表中的記錄便被自動清除。
         會話型臨時表指臨時表中的數據在本次會話期間一直有效,直到會話結束。會話結束后表中針對此次會話的數據會自動清空。

oracle 臨時表的不足之處:
         1、不支持lob對象,例如 spatial 的sdo_geometry。這也許是設計者基于運行效率的考慮,但實際應用中確實需要此功能時就無法使用臨時表了。
         2、不支持主外鍵關系。這意味著臨時表

鑒于以上原因,灑家設計了一份自定義的臨時表處理辦法,使之可以支持oracle spatial數據類型和主外鍵關系,而且不會出現并發沖突。

          1、以常規表的形式創建臨時數據表的表結構,但要在每一個表的主鍵中加入一個 sessionid <number> 列以區分不同的會話。(可以有lob列和主外鍵)
          2、寫一個用戶注銷觸發器,在用戶結束會話的時候刪除本次會話所插入的所有記錄(sessionid等于本次會話id的記錄)。
          3、程序寫入數據時,要順便將當前的會話id(sessionid)寫入表中。
           4、程序讀取數據時,只讀取與當前會話id相同的記錄即可。

功能增強的擴展設計:
          1、可以在數據表上建立一個視圖,視圖對記錄的篩選條件就是當前會話的sessionid。
          2、數據表中的sessionid列可以通過trigger實現,以實現對應用層的透明性。
          3、高級用戶可以訪問全局數據,以實現更加復雜的功能。

擴展臨時表的優點:
        1、實現了與oracle的基于會話的臨時表相同的功能。
        2、支持sdo_geometry等lob數據類型。
        3、支持表間的主外鍵連接,且主外鍵連接也是基于會話的。
        4、高級用戶可以訪問全局數據,以實現更加復雜的功能。

                                     
八風不動2004年11月22日涂鴉于大連開發區管委會辦公室
注冊會員,創建你的web開發資料庫,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 茶陵县| 将乐县| 美姑县| 台江县| 喀什市| 永平县| 揭西县| 西和县| 拜泉县| 瑞安市| 会理县| 灵宝市| 长乐市| 于都县| 台前县| 河曲县| 轮台县| 京山县| 辽阳市| 仁怀市| 丽水市| 台东市| 托克托县| 行唐县| 郧西县| 宁远县| 孙吴县| 德保县| 绿春县| 维西| 大同市| 杭锦后旗| 南江县| 平舆县| 临江市| 会东县| 儋州市| 金溪县| 平乐县| 双桥区| 黄平县|