文章主要教会你如何正确的使用Oracle存储过程使其返回相关的数据集的实际操作步骤,我们大家都知道在Oracle中存储过程的返回相关的数据集主要作用是通过相关ref cursor类型数据的实际应用参数返回的,而返回数据的参数应该是out或in out类型的。

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及广告推广等,在成都网站建设、成都全网营销、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
由于在定义Oracle存储过程时无法直接指定参数的数据类型为:ref cursor,而是首先通过以下方法将ref cursor进行了重定义:
- create or replace package FuxjPackage is
 - type FuxjResultSet is ref cursor;
 
还可以定义其他内容
- end FuxjPackage;
 
再定义Oracle存储过程:
- create or replace procedure UpdatefuxjExample
 
(sDM in char,sMC in char, pRecCur in out FuxjPackage.FuxjResultSet)- as
 - begin
 - update fuxjExample set mc=sMC where dm=sDM;
 - if SQL%ROWCOUNT=0 then
 - rollback;
 - open pRecCur for
 - select '0' res from dual;
 - else
 - commit;
 - open pRecCur for
 - select '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
 - select * from FuxjExample;
 - end;
 
二、在Delphi中调用返回数据集的Oracle存储过程
可以通过TstoredProc或TQuery控件来调用执行返回数据集的存储,数据集通过TstoredProc或TQuery控件的参数返回,注意参数的DataType类型为ftCursor,而参数的ParamType类型为ptInputOutput。
使用TstoredProc执行UpdatefuxjExample的相关设置为:
- object StoredProc1: TStoredProc
 - DatabaseName = 'UseProc'
 - StoredProcName = 'UPDATEFUXJEXAMPLE'
 - ParamData = <
 - item
 - DataType = ftString
 - Name = 'sDM'
 - ParamType = ptInput
 - end
 - item
 - DataType = ftString
 - Name = 'sMC'
 - ParamType = ptInput
 - end
 - item
 - DataType = ftCursor
 - Name = 'pRecCur'
 - ParamType = ptInputOutput
 - Value = Null
 - end>
 - end
 
以上的相关内容就是对Oracle存储过程中返回数据集的介绍,望你能有所收获。
【编辑推荐】
                网页标题:Oracle通过存储过程如何正确返回数据集?
                
                浏览地址:http://www.csdahua.cn/qtweb/news37/3437.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网