萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> 用.NET調用Oracle存儲過程返回記錄集

用.NET調用Oracle存儲過程返回記錄集

oracle的存儲過程返回記錄集,關鍵之處是要用游標。關於數據庫的游標(cursor)大家肯定都接觸不少,我們可以通過OPEN,FETCH,CLOSE操作控制游標進行各種方便的操作,這方面的例子我就不在重復了。

我們現在要介紹的是游標變量(cursor variable)。類似游標,游標變量也是指向一個查詢結果集的當前行。不同的是,游標變量能為任何類型相似(type-compatible)的查詢打開,而並不是綁定到某一個特定的查詢。通過游標變量,你可以在數據庫的數據提取中獲得更多的方便。

首先是建立表:

CREATE TABLE LIHUAN.BILL_POINTS
(
POINTS_ID NUMBER(10,0) NOT NULL,
CUSTOMER_ID NUMBER(10,0) NOT NULL,
BILL_POINT_NO NUMBER(2,0) DEFAULT 1 NOT NULL,
CONSTRAINT PK_BILL_POINTS PRIMARY KEY (POINTS_ID)
)
/

其次,建PACKAGE

CREATE OR REPLACE PACKAGE LIHUAN.YY_PKG_BILL_POINT_NO/**//*取得用戶的所有計費電序號*/
IS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE BILL_POINT_NO(P_CUSTOMER_ID BILL_POINTS.CUSTOMER_ID%TYPE,
Re_CURSOR OUT T_CURSOR);
END;
/

再次,建PACKAGE BODY

CREATE OR REPLACE PACKAGE BODY LIHUAN.YY_PKG_BILL_POINT_NO/**//*取得用戶的所有計費電序號*/
IS
PROCEDURE BILL_POINT_NO(P_CUSTOMER_ID BILL_POINTS.CUSTOMER_ID%TYPE,
Re_CURSOR OUT T_CURSOR)
IS
V_CURSOR T_CURSOR;
BEGIN
 OPEN V_CURSOR FOR
select Bill_Point_No from BILL_POINTS where CUSTOMER_ID =P_CUSTOMER_ID;
Re_CURSOR := V_CURSOR;
END;
END;
/

  • 共2頁:
  • 上一頁
  • 1
  • 2
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved