This error can occur if the Oracle open_cursors parameter is too low or there is a coding issue where sql statements are not closed.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SELECT Max(a.value) AS highest_open_cur, p.value AS max_open_cur FROM v$sesstat a, v$statname b, v$parameter p WHERE a.statistic# = b.statistic# AND b.name = 'opened cursors current' AND p.name = 'open_cursors' GROUP BY p.value; HIGHEST_OPEN_CUR MAX_OPEN_CUR ---------------- ----------------------- 320 300 SQL> show parameter open_cursor NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ open_cursors integer 300 |
Here we can see the highest_open_curosor is more than max_open_cursor. So to avoid this, increase the open_cursor values in spfile. ( default = 300 )
1 2 3 | SQL> alter system set open_cursors=5000; System altered. |