Oracle中通过存储过程中返回数据集Oracle认证考试
文章作者 100test 发表时间 2010:01:17 22:34:15
来源 100Test.Com百考试题网
一、使用存储过程返回数据集
Oracle中存储过程返回数据集是通过ref cursor类型数据的参数返回的,而返回数据的参数应该是out或in out类型的。
由于在定义存储过程时无法直接指定参数的数据类型为:ref cursor,而是首先通过以下方法将ref cursor进行了重定义:
create or replace package FuxjPackage is
type FuxjResultSet is ref cursor.
--还可以定义其他内容
end FuxjPackage.
再定义存储过程:
create or replace procedure UpdatefuxjExample (sDM in char,sMC in char, pRecCur in out FuxjPackage.FuxjResultSet)
as
begin
0update fuxjExample set mc=sMC where dm=sDM.
if SQL%ROWCOUNT=0 then
rollback.
open pRecCur for
0select 0 res from dual.
else
commit.
open pRecCur for
0select 1 res from dual.
end if.
end.
和
create or replace procedure InsertfuxjExample (sDM in char,sMC in char, pRecCur in out FuxjPackage.FuxjResultSet)
as
begin
insert into FuxjExample (dm,mc) values (sDM,sMC).
commit.
open pRecCur for
0select * from FuxjExample.
end.