Я создал хранимую процедуру (SP) в Oracle с параметром 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, можно предположить, что 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
/
FUNCTION
(неPROCEDURE
), которая возвращает таблицу из ..., см. docs.oracle.com/cd/B19306_01/appdev.102/b14289/ - person Frank Schmitt   schedule 26.03.2015