1.
create or replace function f_query_pageid2(varstr in varchar2 ) return TmpPageQuery
asv_test TmpPageQuery := TmpPageQuery();
TYPE ref_cursor_type IS REF CURSOR; --定义一个动态游标
v_bookid integer;
v_pageid integer;
v_simility integer;
mycursor ref_cursor_type;
begin
open mycursor for 'select bookid,pageid, SYS.UTL_MATCH.edit_distance_similarity(:1 ,pagecont) simility from pagequery order by simility desc' using varstr ;
fetch mycursor into v_bookid,v_pageid,v_simility ;
v_test.extend();
v_test(1) := TypeCalSimility(v_bookid,v_pageid,v_simility);
fetch mycursor into v_bookid,v_pageid,v_simility ;
v_test.extend();
v_test(2) := TypeCalSimility(v_bookid,v_pageid,v_simility);
close mycursor;
return v_test;
end f_query_pageid2;
2.
create or replace type TmpPageQuery as table of TypeCalSimility
3.
create or replace type TypeCalSimility as object(
bookid integer,
pageid integer,
simility integer
)
4.
select * from table(F_QUERY_PAGEID2('AA'));