Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie finde ich den zugrunde liegenden Spalten- und Tabellennamen für eine Oracle-Ansicht?

Tabellen, die zum Erstellen der Ansicht verwendet wurden, können mit der Abfrage ausgewählt werden:

select 
  name , 
  type , 
  referenced_name , 
  referenced_type
from 
  user_dependencies 
where 
  name = 'VIEW_NAME' and 
  type = 'VIEW' and  
  referenced_type = 'TABLE';

Wenn Ansichtsspalten denselben Spaltennamen wie Tabellenspalten haben, versuchen Sie bitte die folgende Abfrage:

select 
  distinct table_name, column_name 
from 
  all_tab_columns 
where table_name in (select
                        referenced_name
                      from 
                        user_dependencies 
                      where 
                        name = 'VIEW_NAME' and 
                        type = 'VIEW' and  
                        referenced_type = 'TABLE') 
 and column_name in (select 
                        column_name 
                     from 
                        all_tab_columns 
                     where 
                        table_name = 'VIEW_NAME');