2012-09-07 118 views
0

this link IBM中,他們解釋瞭如何在COGNOS中使用Oracle存儲過程。調用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它們被明確打開遊標。但是,他們似乎並沒有關閉它。爲什麼是這樣?

回答

0

必須將resuly設置爲Cognos。如果你關閉了光標,那麼還有reuslts,對吧?
一旦完成從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;