从COGNOS调用oracle存储过程



在这个链接中,IBM解释了如何将Oracle存储过程与COGNOS一起使用。

他们正在做:

create or replace package body project_pk as
procedure project_sp (tproj IN numeric, result1 in out project_type1) is
begin
open result1 for
select projects.projectid, projects.projecttype
from projects
where projects.projecttype=tproj;
end;
end;
/

使用open result1 for时,他们会显式地打开光标。但是,他们似乎并没有关闭它。为什么会这样?

您必须将resuly设置返回Cognos。如果你关闭光标,那么既没有重复,对吧
Cognos负责在完成从SP提取数据后关闭光标。
为了让您100%确定情况确实如此,请查看此链接(与Cognos完全无关):
从SQL Server和Oracle 返回结果集

然而,您在链接中提供的示例看起来相当复杂。以下是我正在使用的:

CREATE OR REPLACE PROCEDURE "COGNOS_SP" (
case_id        in numeric,
po_refcur      out sys_refcursor) is
BEGIN
   open po_refcur for 
   select * FROM CASES WHERE CASE_ID = case_id;
END COGNOS_SP;

相关内容

  • 没有找到相关文章

最新更新