Сначала вы должны определить тип коллекции для элементов, которые вы планируете вернуть из своей функции. Поскольку вы возвращаете строку, table of VARCHAR2
должен быть вашим предпочтительным вариантом.
create or replace type numval_type as table of VARCHAR2(30);
Теперь укажите этот тип возврата перед ключевым словом PIPELINED
.
CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER)
RETURN numval_type PIPELINED AS -- type should be specified here after return
BEGIN FOR i IN 1 .. p_rows
LOOP
PIPE ROW('Value is '||i);
END LOOP;
RETURN;
END;
/
Назовите это как
select * from TABLE(get_tab_ptf(100));
Демо