patternMinor
SELECT from Function that return CURSOR
Viewed 0 times
returnfunctionthatselectfromcursor
Problem
I would like to select from a function that return a SYS_REFCURSOR Type value.
for example :
I would like to do something similar to this :
or even :
for example :
CREATE OR REPLACE FUNCTION my_funtion (
my_param IN VARCHAR2)
RETURN SYS_REFCURSOR
IS
l_return SYS_REFCURSOR;
BEGIN
OPEN l_return FOR
SELECT last_name, first_name
FROM employees
WHERE id = my_param
ORDER BY employee_id;
RETURN l_return;
END my_funtion;I would like to do something similar to this :
select * from my_function('id015');or even :
select alias.last_name from my_function('id015') alias;Solution
You could try using
Or try this example to extract fields from your refcursor
FIRST_NAME | LAST_NAME
:--------- | :--------
Donald | Duck
Mickey | Mouse
dbfiddle here
PS. Note about xml overhead.
select * from table(xmlsequence( myfunc() )) . In this case you get xml in columns.Or try this example to extract fields from your refcursor
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
dbfiddle here
PS. Note about xml overhead.
Code Snippets
select extractvalue(column_value,'/ROW/FIRST_NAME') first_name
, extractvalue(column_value,'/ROW/LAST_NAME') last_name
from table(xmlsequence(f()));Context
StackExchange Database Administrators Q#91845, answer score: 5
Revisions (0)
No revisions yet.