0

このリンクIBMでは、COGNOSでOracleストアドプロシージャを使用する方法について説明しています。

彼らがやっています :

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カーソルを開いています。しかし、彼らはそれを閉じていないようです。どうしてこれなの?

4

1 に答える 1

0

必ずCognosに設定して返送する必要があります。カーソルを閉じると、再利用もありませんよね?
SPからのデータのプルが終了したら、カーソルを閉じるのはCognosの責任です。
これが事実であることを100%確実にするために、次のリンクを見てください(Cognosとはまったく関係ありません):SQLServer
および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;
于 2012-09-08T19:39:17.463 に答える