web-dev-qa-db-fra.com

Comment vérifier si un objet de base de données dans Oracle est une table ou une vue

J'ai une liste de noms d'objets à partir desquels je dois savoir si l'objet est une table ou une vue. Pour cette raison, je dois interroger et vérifier all_tables et all_views et confirmer si l'objet est une table ou une vue. J'utilise ci-dessous les requêtes et son fonctionnement. Mais comme j'ai une énorme liste de noms d'objets, je veux effectuer cela en une seule requête et vérifier si l'objet est une table ou une vue et également le propriétaire de l'objet.

select * from ALL_views where view_name like '%INSTANCE%'

select * from all_tables where table_name like '%INSTANCE%'
13
Andrew
select *
  from all_objects 
 where object_name like '%INSTANCE%'

Il y a une colonne OBJECT_TYPE dedans.

21
MarioAna

Que diriez-vous d'utiliser all_objects à la place?

Par exemple.:

select owner,
       object_name,
       object_type
from   all_objects
where  object_type in ('TABLE', 'VIEW')
and    object_name in (....);
12
Boneist