Hello,
Je souhaite supprimer une colonne en Oracle 9i et avant vérifier si elle est utilisée dans une des procédures stockées. Est-il possible de faire une requête pour balayer l'ensemble des procs et rechercher la dite colonne ?
Merci
Hello,
Je souhaite supprimer une colonne en Oracle 9i et avant vérifier si elle est utilisée dans une des procédures stockées. Est-il possible de faire une requête pour balayer l'ensemble des procs et rechercher la dite colonne ?
Merci
Oui en passant par la vue user_source :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select distinct name from user_source where instr (upper (text), 'MACOLONNE') != 0;
Sauf si les procédures sont wrappées ! ;-)
ça me parait douteux de toute façon, instr (en fait like) va trouver tous les textes non-cryptés contenant la chaine désirée, pas forcément en tant que colonne...
je commencerais par trouver les procédures référençant la table désirée, par exemple, pour SCOTT.EMP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SQL> select * from dba_dependencies where REFERENCED_OWNER='SCOTT' and REFERENCED_NAME='EMP' and TYPE='PROCEDURE'; OWNER NAME TYPE REFERENCED_OWNER REFERENCED_NAME REFERENCED_TYPE DEPENDENCY_TYPE ----- ---- --------- ---------------- --------------- ----------------- --------------- SCOTT P PROCEDURE SCOTT EMP TABLE HARD
Partager