暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 参考光标

askTom 2017-07-26
246

问题描述

我不知道这是否可能,但可以了。我只想为crystal reports使用1个存储过程。我想将一个参数传递给
存储过程,以便它只显示在ref光标上。代码看起来像这样。第一个光标显示正常,参数有效,但我需要显示第二个,第三个光标。任何帮助将不胜感激。

create or replace
procedure BRR_Total( 
 --parameter1 in varchar2,
 main_resultset in out  sys_refcursor,
 approval in out sys_refcursor,
 review_status in out sys_refcursor)--,
 --cur in out sys_refcursor)

 is
 begin
 open main_resultset for 
 
 select distinct
 
 mo.entitykey mo_entitykey,
 mo.batchnumber mo_batch_number,
 mo.moid mo_moid,
 mo.quantity mo_quantity,
 mo.mostatus mo_status,
 mo.storageunit mo_storage_unit,
 mo.validfrom mo_valid_from,
 mo.validto mo_valid_to,
 mo.materialname mo_materialname,
 mo.materialnumber mo_materialnumber,
  
 where brr.entitykey = 5063875434.00;
-- where brr.entitykey = parameter1;
-- and pro.pk_sprache = parameter1;
 
 
 OPEN approval for 
 SELECT 
  RS.PARENTKEY,
  RS.SIGNDATE,
  RS.RELEASABLESTATUS,
  RS.SIGNATURETEXT,
  RS.SIGNATURECOMMENT,
  RS.SORTORDER,
  RS.RELEASABLETYPE,
  RS.RELEASABLETYPEGOUPIDENTIFIER,
  RS.MBRFULFILLED,
  RS.USERREPORTVALUE,
  RS.ENTITYKEY
FROM PASX.PR_EBR_BRR_RELEASE_SIGNATURES RS;

 OPEN review_status for 
 SELECT 
  RS.ENTITYKEY,
  RS.REVIEWSTEPDESCRIPTION,
  RS.REVIEWCONDUCTED,
  RS.SORTORDER,
  RS.ELEMENTCOUNTREPORTVALUE,
  RSS.SORTORDER,
  RSS.ENTITYKEY,
  RSS.SIGNATURETEXT,
  RSS.SIGNDATE,
  RSS.USERREPORTVALUE,
  RSS.PK_PROTOKOLLKEY
FROM PASX.PR_EBR_BRR_REVIEW_STEP RS
LEFT OUTER JOIN PASX.PR_EBR_BRR_RELEASE_SIGNATURES RSS
ON (RS.ENTITYKEY = RSS.PARENTKEY)
AND (RS.PK_PROTOKOLLKEY = RSS.PK_PROTOKOLLKEY);
 
 --approval:=cur;
 
   end;
复制

专家解答

我不知道Crystal Reports如何与存储过程ref游标交互。但是如果你的问题是:

如何根据输入参数消费不同的查询?

然后你可以让你的ref光标返回基于你的输入不同查询的结果:

create or replace procedure p ( 
  query_selector in int, 
  results out sys_refcursor
) is
begin
  if query_selector = 1 then
    open results for select query_1 ...
  elsif query_selector = 2 then
    open results for select query_2 ...
  elsif ...
  
  end if;
end p;
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论