Bonjour à tous,

Je suis sous Oracle 11g 11.2.0.3.0 64 bits sous Windows que je suis en train d'aborder, je suis en train de faire quelques essais pour afficher une procédure stockée dans V$SESSION_LONGOPS en passant par DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS. L'idée étant de pouvoir suivre les stats de procédures personnelles qui vont durer quelques minutes, ma procédure n'étant pas listée dans V$SESSION_LONGOPS initialement, j'ai du faire en sorte de l'y inclure.

J'ai pris un exemple sur le net que j'ai personnalisé, j'ai inclus une procédure stockée dans une boucle WHILE qui incrémente la valeur SOFAR de 1 jusqu'à 10 et ça fonctionne parfaitement. Je souhaite si possible personnaliser la valeur de target_desc (valeur en rouge dans le code ci-dessous), ce qui permettrait lors de la récupération des statistiques sur le déroulé de la procédure, de pouvoir visualiser à quelle stade elle en est.

Dans l'exemple ci-dessous, j'essaie de faire varier target_desc en fonction de la valorisation de sofar :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DECLARE
        rindex    BINARY_INTEGER;
        slno      BINARY_INTEGER;
        totalwork number;
        sofar     number;
        obj       BINARY_INTEGER;
 
      BEGIN
        rindex := dbms_application_info.set_session_longops_nohint;
        sofar := 0;
        totalwork := 10;
 
        WHILE sofar < 10 LOOP
          maProc(3, sofar);
          dbms_output.put_line(sofar);
          sofar := sofar + 1;
          if sofar = 1 then
           dbms_application_info.set_session_longops(rindex, slno,
           'ProcPerso', obj, 0, sofar, totalwork, 'Debut de proc', 'tables');
          elsif sofar > 1 then
           dbms_application_info.set_session_longops(rindex, slno,
           'ProcPerso', obj, 0, sofar, totalwork, 'Suite de la proc', 'tables');
          end if;
        END LOOP;
        getsid;
        commit;
      END;
En résultat, j'ai "Debut de proc" tout au long du déroulé de la procédure.

Sauriez-vous si cette manip est possible ?

Je vous remercie et bonne soirée,

C. Tobini