但是使用管道函数的时候是可以返回一个package里面定义的type的。

create or replace package test_type
is
    type test_type_record is record(
        item_key        varchar2(100),
        item_value      varchar2(100)
    );
    type test_type_tab is table of test_type_record; 
end test_type; 
/

create or replace function pipe_function( p_string varchar2 )
return test_type.test_type_tab pipelined
is
    l_item test_type.test_type_record;
begin
    for i in 1..length( p_string ) loop
        l_item.item_key := substr( p_string, i, 1 );
        l_item.item_value := 1;
        
        pipe row( l_item );
    end loop;
    return;
end pipe_function;
/

select * from table( pipe_function( 'hello, world' ) );