Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Using SYS_REFCURSOR returned from function in a WHERE clause

802443Oct 1 2010 — edited Oct 1 2010
Hi 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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 29 2010
Added on Oct 1 2010
6 comments
1,354 views