Aucun message portant le libellé Trace. Afficher tous les messages
Aucun message portant le libellé Trace. Afficher tous les messages

mardi 27 janvier 2009

Activer la trace sur une session

La procédure "SET_SQL_TRACE_IN_SESSION" du package d'Oracle "DBMS_SYSTEM" permet d'activer et de désactiver la trace SQL sur n'importe quelle session en cours. L'activation d'une trace à partir de cette procédure est l'équivalent d'activer l'évènement "10046" de niveau 1.

Syntaxe :

DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION
(
sid NUMBER,
serial# NUMBER,
sql_trace BOOLEAN
);

Exemples de trace sur une session dont le SID est 460 et in SERIAL# équivalent à 222 :

Activation
EXEC dbms_system.set_sql_trace_in_session (460, 222, true);

Désactiver
EXEC dbms_system.set_sql_trace_in_session (460, 222, false);

Vous pouvez obtenir la valeur du "SID" et "SERIAL#" en consultant la vue dynamique "V$SESSION".

La colonne "SQL_TRACE" de la vue dynamique "V$SESSION" indique si une trace est en cours sur la session. Lors de l'activation de la trace, la valeur de cette colonne reste "DISABLED" tant qu'il n'y a pas d'opération d'exécuté. Même comportement lors de la désactivation.

Par défaut, aucun privilège et synonyme n'existe pour le package DBMS_SYSTEM. Se connecter sous SYS ou sinon, octroyer les droits à l'utilisateur désiré.