Voici la requête que je l'ai utilisé pour analyser des objets dba invalides de dba_objects dans la base de données et son retournaient avec des objets non valides:Différence entre Les synonymes Oracle
select do.STATUS as CODE_STATUS, do.OBJECT_TYPE, do.OWNER, do.OBJECT_NAME from dba_objects do
WHERE UPPER(do.OBJECT_TYPE) IN ('TABLE', 'VIEW', 'FUNCTION', 'PROCEDURE', 'PACKAGE', 'PACKAGE BODY') AND UPPER(do.STATUS) <> 'VALID'
AND do.owner in ('AD','BD','DR','CD')
est inférieure à la requête i ai utilisé pour analyser dba invalide objets de sys.dba_objects et son retour nulle:
select do.STATUS as CODE_STATUS, do.OBJECT_TYPE, do.OWNER, do.OBJECT_NAME from sys.dba_objects do
WHERE UPPER(do.OBJECT_TYPE) IN ('TABLE', 'VIEW', 'FUNCTION', 'PROCEDURE', 'PACKAGE', 'PACKAGE BODY') AND UPPER(do.STATUS) <> 'VALID'
AND do.owner in ('AD','BD','DR','CD')
Pourquoi la première requête renvoie des résultats avec le corps de package non valide et pourquoi la deuxième requête ne renvoie aucun résultat
Le résultat est-il persistant? Je veux dire que vous exécutez cette requête les uns après les autres et le résultat est le même? Courez-vous cette requête sous le même utilisateur? – JSapkota
Pouvez-vous dire ce que donne cette requête: select * from all_synonyms où synonym_name = 'DBA_OBJECTS' – Mottor
@JSapkota le résultat est le même, c'est pourquoi je ne comprends pas la différence entre ce queires. – Andrew