Bonjour,

Je rencontre un problème avec la lecture par curseur de la table générée par le package DBMS_ERRORLOG..

Le système me répond que j'utilise un mauvais TYPE.

Voici un simple code que j'utilise.

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
DECLARE
    CURSOR c_test IS SELECT * FROM err$_TABLE;
    TYPE t_err IS TABLE OF err$_TABLE:%ROWTYPE;
    r_err t_err;
 
   BEGIN
       OPEN c_test;
       LOOP
          FETCH c_test BULK COLLECT INTO r_err LIMIT 100;
          FOR i IN 1 .. r_err.COUNT LOOP
              DBMS_OUPUT......
          END LOOP;
       END LOOP;
       CLOSE c_test;
   END;
Lorsque que j'exécute cette procédure, erreur sur le type de ma collection.

Est-ce que cela est dû au fait que le nom de la table contient "$" comme les tables systèmes ?
Est-ce dû au fait que des colonnes ont un nom de la sorte "ora_err_tag$" ?

Avez-vous déjà réalisé un FETCH sur une table générée par DBMS_ERRORLOG ?

Je ne comprends pas l'erreur.

Pouvez vous m'en dire plus ?
Comment peut on utiliser une collection sur ce type de table ?
Est-ce qu'un simple FOR r_err IN (SELECT * FROM err$_TABLE) LOOP END LOOP suffit pour avoir une collection remplie ?