Voici comment trouver les curseurs ouverts qui ont été analysés. Vous devez être connecté en tant qu'utilisateur ayant accès à v $ open_cursor et v $ session.
COLUMN USER_NAME FORMAT A15
SELECT s.machine, oc.user_name, oc.sql_text, count(1)
FROM v$open_cursor oc, v$session s
WHERE oc.sid = s.sid
GROUP BY user_name, sql_text, machine
HAVING COUNT(1) > 2
ORDER BY count(1) DESC
;
Si cela vous donne une partie du texte SQL, cela peut être utile pour identifier les applications qui fuient. Si un curseur n'a pas été analysé, il n'apparaît pas ici. Notez qu'Oralce garde parfois les choses ouvertes plus longtemps que vous.
Ces 'cours ouverts les curseurs' sont paresseusement moissonné par le serveur de table Oracle; donc le nombre que vous voyez pour votre application peut être anormalement élevé sans vouloir dire que vous avez fait une erreur. Voir http://www.orafaq.com/node/758 –