Buscar tablas que contengan un campo determinado

La siguinete consulta puede ser utilizada para encontrar las tablas que contienen determinado campo al que se le conoce parcial o totalmente su nombre.

select owner,
table_name,
column_name Nombre,
substr(data_type decode(char_col_decl_length, null,
decode(data_precision, null, null,
'('data_precision
decode(data_scale,0,')',','data_scale')')),
'('char_col_decl_length')'),1,20) Tipo
from all_tab_columns
where column_name like upper( 'nombre_campo_o_parte') '%'
order by owner, table_name, column_name;

Esta consulta es util por ejemplo para realizar conversiones de datos, saber tablas relacionadas cuando no existen claves foráneas, o encontrar el nombre de una tabla cuando se conoce solamente un campo de la misma.

4 comentarios:

  1. necesitaba encontrar un campo dentro de una base de datos,me funcionó a la perfeccion. GRACIAS!!!

    ResponderEliminar
  2. Excelente, muchas gracias. Necesito generar un reporte y los campos tienen el valor del mes. Esto me ayuda muchìsimo

    ResponderEliminar
  3. Otra opción más corta:

    SELECT OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,NULLABLE FROM ALL_TAB_COLUMNS WHERE column_name = upper( 'nombrecolumna');

    ResponderEliminar

Ingresa tus comentarios