If there any restrictions on pipelined functions as object methods?
TYPE number_t AS TABLE OF number;
dummy pipelined function:
FUNCTION pipe_test2(Dat_Spr date) RETURN number_t PIPELINED is
BEGIN
PIPE row(32);
RETURN;
END;
SELECT * FROM table(pipe_test2(trunc(sysdate)))
COLUMN_VALUE
------------
32
In object:
TYPE NAV_VUG2 as object
(
state NUMBER,
MEMBER FUNCTION test(Dat_Spr date) RETURN number_t PIPELINED
);
TYPE BODY NAV_VUG2 AS
MEMBER FUNCTION test(Dat_Spr date) RETURN number_t PIPELINED is
BEGIN
PIPE row(32);
RETURN;
END;
END;
DECLARE
o_spr NAV_VUG2;
test number;
BEGIN
o_spr := NAV_VUG2(null);
select * into test
from table(o_spr.test(trunc(sysdate-1)))
where
rownum < 2;
dbms_output.put_line(test);
END;
always: ORA-03113
TYPE number_t AS TABLE OF number;
dummy pipelined function:
FUNCTION pipe_test2(Dat_Spr date) RETURN number_t PIPELINED is
BEGIN
PIPE row(32);
RETURN;
END;
SELECT * FROM table(pipe_test2(trunc(sysdate)))
COLUMN_VALUE
------------
32
In object:
TYPE NAV_VUG2 as object
(
state NUMBER,
MEMBER FUNCTION test(Dat_Spr date) RETURN number_t PIPELINED
);
TYPE BODY NAV_VUG2 AS
MEMBER FUNCTION test(Dat_Spr date) RETURN number_t PIPELINED is
BEGIN
PIPE row(32);
RETURN;
END;
END;
DECLARE
o_spr NAV_VUG2;
test number;
BEGIN
o_spr := NAV_VUG2(null);
select * into test
from table(o_spr.test(trunc(sysdate-1)))
where
rownum < 2;
dbms_output.put_line(test);
END;
always: ORA-03113