You could try using
select * from table(xmlsequence( myfunc() ))
. In this case you get xml in columns.
Or try this example to extract field COL
fields from your refcursor
select extractvalue(COLUMN_VALUE ,'/ROW/COL') from table( xmlsequence( cursor( select 1 COL from dual union all select 2 COL from dual) ))
.
select extractvalue(column_value,'/ROW/FIRST_NAME') first_name , extractvalue(column_value,'/ROW/LAST_NAME') last_name from table(xmlsequence(f()));
FIRST_NAME | LAST_NAME :--------- | :-------- Donald | Duck Mickey | Mouse
Here cursor(..)
is equivalent of refcursor function.dbfiddle here
PS. Note about xml overhead.
PPS. Sorry if something wrong because this is my 1st post at this site.