Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle11g 从Spotfire调用Oracle存储过程_Oracle11g_Tibco_Spotfire - Fatal编程技术网

Oracle11g 从Spotfire调用Oracle存储过程

Oracle11g 从Spotfire调用Oracle存储过程,oracle11g,tibco,spotfire,Oracle11g,Tibco,Spotfire,我已经在Oracle中创建了一个存储过程SP,它有一个SYS_REFCURSOR类型的OUT参数,该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 FO

我已经在Oracle中创建了一个存储过程SP,它有一个SYS_REFCURSOR类型的OUT参数,该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信息设计器只支持返回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
/

你可以试试这样的

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;
/   

文档是非决定性的-它提到了也称为表函数。Oracle中的表函数是一个函数,而不是返回…表的过程,请参阅