Si vous avez cette erreur, cela veut dire que le nombre maximum des curseurs ouverts par un utilisateur est atteint. Pour savoir plus le nombre de curseurs ouverts, exécuter cette requête (compte sys as sysdba):
select max(a.value) as 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
Dans mon cas:
OPEN_CUR MAX_OPEN_CUR
---------- -----------------------------
77 300
Pour régler ce problème de ORA-01000, il faudrait tout d'abord vérifier la valeur de la configuration du paramètre en exécutant cette requête et changer la valeur de ce dernier.
SQL> select name, value from v$parameter where name ='open_cursors'
NAME VALUE
---------------------------------------------------------------------------
open_cursors 300
Pour modifier cette valeur, il faudrait exécuter ceci:
SQL> ALTER SYSTEM SET OPEN_CURSORS=350 SCOPE=MEMORY;
System altered
ATTENTION: SI VOUS VOULEZ CHANGER CE PARAMÈTRE POUR LE PROCHAIN DÉMARRAGE DE L'INSTANCE, IL FAUDRAIT REMPLACER MEMORY PAR SPFILE.
SQL> select name, value from v$parameter where name ='open_cursors' ;
NAME VALUE
--------------------------------------------------------------------------------
open_cursors 350
select max(a.value) as 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
Dans mon cas:
OPEN_CUR MAX_OPEN_CUR
---------- -----------------------------
77 300
Pour régler ce problème de ORA-01000, il faudrait tout d'abord vérifier la valeur de la configuration du paramètre en exécutant cette requête et changer la valeur de ce dernier.
SQL> select name, value from v$parameter where name ='open_cursors'
NAME VALUE
---------------------------------------------------------------------------
open_cursors 300
Pour modifier cette valeur, il faudrait exécuter ceci:
SQL> ALTER SYSTEM SET OPEN_CURSORS=350 SCOPE=MEMORY;
System altered
ATTENTION: SI VOUS VOULEZ CHANGER CE PARAMÈTRE POUR LE PROCHAIN DÉMARRAGE DE L'INSTANCE, IL FAUDRAIT REMPLACER MEMORY PAR SPFILE.
SQL> select name, value from v$parameter where name ='open_cursors' ;
NAME VALUE
--------------------------------------------------------------------------------
open_cursors 350
Aucun commentaire:
Enregistrer un commentaire