1

SYS_REFCURSOR 型の OUT パラメータを持つストアド プロシージャ (SP) を Oracle 内に作成しました。この SP は Oracle 内で期待どおりに実行されます。

CREATE OR REPLACE PROCEDURE SCHEMA.MyProc
(
  p_Code IN varchar2,
  p_FromDate IN Timestamp,
  p_ToDate IN timestamp,
  p_ResultSet OUT SYS_REFCURSOR
) 
AS
BEGIN
   OPEN p_ResultSet FOR
   -- Obtain required data

END SF_EquipmentStatusHistory;
/   

しかし、組織内の Spotfire 担当者が Spotfire で新しいプロシージャを作成し、私の SP を参照しようとすると、Spotfire は OUT パラメータを持つことができないと文句を言います。

このリンクSpotfire Procedure Overviewを読むと、Spotfire の「Information Designer は、タイプ REF CURSOR のデータを返すプロシージャのみをサポートする」ことを示唆しているようです。

この問題を解決する方法について誰か助けてもらえますか?

ありがとう

解決済み:

提案されているように、ストアド プロシージャを Oracle 内の関数に変更すると、Spotfire が OUT パラメータについて不平を言う問題が解決されました。

CREATE OR REPLACE FUNCTION SCHEMA.MyFunc 
(
  p_Equipment_code IN varchar2,
  p_FromDate IN Timestamp,
  p_ToDate in timestamp
)
return SYS_REFCURSOR
AS p_ResultSet sys_refcursor;
BEGIN
    OPEN p_ResultSet FOR
    -- Obtain required data
return  p_ResultSet;
END MyFunc
/
4

1 に答える 1