sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo encontrar la columna subyacente y el nombre de la tabla para una vista de Oracle?

Las tablas utilizadas para crear la vista se pueden seleccionar mediante la consulta:

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

Si las columnas de la vista tienen el mismo nombre de columna que la columna de la tabla, intente realizar la siguiente consulta:

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');