Runtime error. You may not be able to guess that this will happen before this happens. Perhaps your solution is to check one block with the identifier of the cursor you want to open dbms_sql.is_open(c_id).
, , :
select a.value, s.username, s.sid, s.serial
from v$sesstat a, v$statname b, v$session s
where a.statistic
and b.name = 'opened cursors current'
;
v$open_cursor :
SELECT *
FROM v$open_cursor oc, v$session s
WHERE oc.sid = s.sid
order by 3,2;
, -, , .