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é.
Aucun commentaire:
Publier un commentaire