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
/