oracle的儲存過程返回記錄集

2021-08-29 09:04:40 字數 1671 閱讀 4995

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;

/ 最後,在.net中程式呼叫。

public dataset bill_point_no(string customer_id)//ok

else

return dataset;

} public bool runprocedure(string returnparameter,oracletype paramtype,ref dataset dataset,hashtable ht ,string procedurename,string oracleconnection)

oracledataadapter odadapter=new oracledataadapter(dacommand);

try

catch(system.exception e)

finally

Oracle儲存過程返回記錄集

oracle的儲存過程返回記錄集,關鍵之處是要用游標。關於資料庫的游標 cursor 大家肯定都接觸不少,我們可以通過open,fetch,close操作控制游標進行各種方便的操作,這方面的例子我就不在重複了。我們現在要介紹的是游標變數 cursor variable 類似游標,游標變數也是指向乙個...

儲存過程返回記錄總數

在網上找了很長時間,經過個人總結,終於得到如願的 create procedure recordcount tablename nvarchar 100 strwhere nvarchar 500 as declare flag int declare sqlstr nvarchar 1000 se...

Oracle儲存過程返回游標

oracle儲存過程返回游標 有倆種方法 一種是宣告系統游標,一種是宣告自定義游標,然後後面操作一樣,引數型別為 in out 或out 1 宣告個人系統游標.推薦 create or replace p temp procedure cur arg out sys refcursor 方法1 be...