Я хочу написать две конвейерные функции, автономные, то есть вне пакета PL / SQL:
create or replace function fn_test_1
return sys.DBMS_DEBUG_VC2COLL pipelined -- ODCIVARCHAR2LIST
AS
BEGIN
FOR l_row in ( ... )
LOOP
PIPE ROW('text');
PIPE ROW('other text');
PIPE ROW(strings_concatenated);
END LOOP;
END;
/
create or replace function fn_test_2
return sys.DBMS_DEBUG_VC2COLL pipelined -- ODCIVARCHAR2LIST
AS
BEGIN
FOR l_row in ( select column_value as line from TABLE( fn_test_1 ) )
LOOP
PIPE ROW(l_row);
END LOOP;
END;
/
fn_test_1
успешно компилируется и работает нормально. Однако я не могу скомпилировать fn_test_2
из-за:
PLS-00382: expression is of wrong type
Могу ли я даже написать отдельные конвейерные функции, вызывающие другую?