我在Oracle中创建了一个存储过程(SP),它的OUT参数类型为SYS_REFCURSOR,此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
/
答案 0 :(得分:0)
你可能会尝试这样的事情
CREATE OR REPLACE FUNCTION SCHEMA.MyFuctRC
(
p_Code IN varchar2,
p_FromDate IN Timestamp,
p_ToDate IN timestamp
)
Return sys_refcursor
AS
my_rc sys_refcursor ;
BEGIN
OPEN my_rc FOR
-- your select statement
return my_rc;
END MyFuctRC;
/