1
我在Oracle中创建了一个具有类型为SYS_REFCURSOR的OUT参数的存储过程(SP),该SP在Oracle中按预期方式执行。从Spotfire调用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中“信息设计只支持返回类型REF CURSOR的数据程序”
有人可以请帮助,我怎么解决这个问题?
感谢
解决:
至于建议将存储过程中甲骨文功能并解决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
/
文档不确定 - 它提到“(也称为表函数)”。 Oracle中的表函数是一个'FUNCTION'(而不是'PROCEDURE'),它返回一个...的表格,参见http://docs.oracle.com/cd/B19306_01/appdev.102/b14289/dcitblfns.htm# CHDIIFEG – 2015-03-26 09:19:10