熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ADO.NET訪問Oracle 9i存儲過程(上)[6]

2013-11-13 11:01:39  來源: .NET編程 

  控制台輸出顯示了員工 的電子郵件地址

  Email address is: NKOCHHAR

  結果集與 REF CURSOR

  可使用 REF CURSOR 數據類型來處理 Oracle 結果集REF CURSOR 是一個指向 PL/SQL 查詢所返回的結果集的指針與普通的游標不同REF CURSOR 是一個變量它是對游標的引用可以在執行時將其設置為指向不同的結果集使用 REF CURSOR 輸出參數可以將 Oracle 結構化程序的結果集傳遞回調用應用程序通過在調用應用程序中定義 OracleTypeCursor 數據類型的輸出參數可以訪問 REF CURSOR 所指向的結果集在使用 REF CURSOR 的過程中OracleConnection 必須保持打開狀態

  包

  PL/SQL 和 TSQL 中的存儲過程之間的一個重大差異是 PL/SQL 所使用的 Oracle 包 結構在 TSQL 中沒有等效元素包是在邏輯上相關的編程塊(如存儲過程和函數)的容器它包含兩個部分

  · 規范定義包的名稱並為包中的每個存儲過程或函數提供方法簽名(原型)規范頭還定義所有全局聲明規范的樣式類似於 C 或 C++頭文件

  · 正文包含包頭中定義的存儲過程和函數的代碼

  每個存儲過程或函數的參數都出現在括號內並且用逗號分隔每個參數還根據需要用以下三個標識符中的一個進行標記

· IN該值從調用應用程序傳遞到 PL/SQL 塊如果未指定標識符則 IN 為默認傳遞方向

  · OUT該值由存儲過程生成並傳遞回調用應用程序

  · INOUT該值被傳遞到 PL/SQL 塊可能在該塊內部進行修改然後返回到調用應用程序

  每個參數也都被標記以指示數據類型

  以下包規范定義了四個過程它們在 HR 架構的 LOCATIONS 表中創建檢索更新和刪除數據

 CREATE OR new PACKAGE CRUD_LOCATIONS AS

  TYPE T_CURSOR IS REF CURSOR;

  PROCEDURE GetLocations (cur_Locations OUT T_CURSOR);

  PROCEDURE UpdateLocations (p_location_id IN NUMBER

  p_street_address IN VARCHAR

  p_postal_code IN VARCHAR

  p_city IN VARCHAR

  p_state_province IN VARCHAR

  p_country_id IN CHAR);

  PROCEDURE DeleteLocations (p_location_id IN NUMBER);

  PROCEDURE InsertLocations (p_location_id OUT NUMBER

  p_street_address IN VARCHAR

  p_postal_code IN VARCHAR

  p_city IN VARCHAR

  p_state_province IN VARCHAR

  p_country_id IN CHAR);

  END CRUD_LOCATIONS;

[]  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15008.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.