Oracle儲存過程返回記錄集

2021-06-07 16:29:40 字數 1261 閱讀 6628

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;

oracle的儲存過程返回記錄集

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

oracle使用游標讓儲存過程返回記錄集

因為專案需要,需要寫乙個儲存過程在oracle上,返回的是記錄集,普通的儲存過程貌似不可以,按照網上說的用游標寫了乙個出來,如下 宣告包頭 create or replace package pack defectscount as type cur defectscount is ref curs...

儲存過程返回記錄集總數,及輸出。

在查詢分析器中執行建立儲存過程 create procedure recordcount strwhere nvarchar 500 count int output as declare sqlstr nvarchar 1000 if strwhere set sqlstr n select co...