从COGNOS调用oracle存储过程

时间:2012-09-07 16:21:26

标签: stored-procedures oracle11g cognos-8

this link 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,他们会显式打开游标。但是,他们似乎并没有关闭它。这是为什么?

1 个答案:

答案 0 :(得分:0)

您必须将resuly设置为Cognos。如果你关闭光标,那么也有重新定位,对吧? 一旦完成从SP中提取数据,Cognos就有责任关闭光标。
为了让您100%确定是这种情况,请查看此链接(完全与Cognos无关):
Returning result Sets from SQL Server and 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;