原著作者:Jim Czuprynski
使用聯接視圖實現複雜的需求<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
使用一個聯接的視圖把前面的例子帶到更高的層次:允許我們的應用訪問多個表的信息。擴展前面的例子:
記住,當你創建了一個複雜的視圖後,ORACLE禁止發出的每句SQL語句中針對基本表的DML操作,哪怕僅針對一個。另外,INSERT語句可以應用在視圖中的主鍵保持表(KEY PRESERVED TABLE)。主鍵保持表就是它的主鍵或唯一健在視圖返回的結果集中也是唯一的。在本例中,就是Employees表。ALL_UPDATABLE_COLUMNS數據字典顯示了哪些是可以被更新的。
使用程序包實現功能的包裝化和數據存取的標準化
ORACLE程序包的最非凡的功能就是它們的把對數據存取的功能包裝成一個數據庫對象的能力。我們現在的開發組就是使用程序包的公共屬性和方法(包括傳統的set 和get這種面向對象的方法)來描述應用程序針對基本視圖集的數據庫接口需求。
而且,既然程序包的規格定義描述了程序包體的函數和過程的公共接口,那麼它就有比傳統的存儲函數和過程的好處:程序包體可以和程序包分開單獨編譯。那就意味着,除非簽名(函數和存儲過程的傳入或傳出參數和返回參數)發生了變化,否則程序包規格定義是不需要重新編譯的。這可以最大限度地降低由於依賴對象而發生的重編譯。