Bonjour à tous.
Je travaille sur Oracle 8.
J'essaie de "pinner" des objets en utilisant DBMS_SHARED_POOL. Je lance, par exemple le script suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
execute DBMS_SHARED_POOL.KEEP('nom_propriétaire.nom_package','P')
Ensuite cela ne me retourne aucune erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PL/SQL procedure successfully completed
Ensuite je vérifie si le package a vraiment été "KEPT" dans la shared_pool :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
execute SYS.DBMS_SHARED_POOL.SIZES(70);
et j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SIZE(K) KEPT   NAME
------- ------ ---------------------------------------------------------------
    312        OWA.RH_CARRIERE               (PACKAGE BODY)
    312        OWA.TEST_IRAS                  (PACKAGE BODY)
    266        SYS.STANDARD                  (PACKAGE)
    238        select * from sys.all_objects where object_type = :object_type 
                   and owner = :object_owner and object_name = :object_name an
                   d :sub_object is null 
                   (1378E05C,154303060)      (CURSOR)
 
... etc
Mon problème c'est qu'aucun package ne possède un attribut KEPT='YES'.
J'ai essaié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select NAME, KEPT from v$db_object_cache where OWNER='nom_user' and TYPE='PACKAGE';
mais tous les packages ont toujours KEPT='NO'.
Quelqu'un aurait-il une idée pour m'expliquer ceci?
Merci.