Using SYS_REFCURSOR returned from function in a WHERE clause
802443Oct 1 2010 — edited Oct 1 2010Hi All,
I have a plsql function that returns a SYS_REFCURSOR. Typically it will be three columns wide and 1 or more rows. I'd like to use it like:
SELECT *
FROM schema_name.table_name a
WHERE a.date_col BETWEEN trunc(add_months(SYSDATE,-12),'month') AND sysdate
AND ((a.col_a, a.col_b, a.col_c) IN (
open SYS_REFCURSOR returned by schema_name.package_name.function_name('x','y','z')
)
I've tried casting it to a table, but it complains about an invalid relational operator:
SELECT *
FROM schema_name.table_name a
WHERE a.date_col BETWEEN trunc(add_months(SYSDATE,-12),'month') AND sysdate
AND ((a.col_a, a.col_b, a.col_c) IN (TABLE(schema_name.package_name.function_name('x','y','z')))
Any suggestions would be appreciated!
Thanks,
Thomas