Muchas veces a lo largo de un desarrollo nos vemos obligados a generar un catalogo de datos del modelo de datos que estamos usando, ya que (seamos sinceros) una vez que comienza el desarrollo el modelo de datos y el modelo diseñado empiezan a divergir.
Esto significa que hay que revisar la definición de tablas y campos.
La siguiente consulta permite obtener el modelo de datos de una BBDD ordenado por tablas y con los comentarios de tablas y columnas integrados. Todavía no incluye el marcar los campos que forman parte de la Primary Key, pero todo se andará.
Como sé que puede mejorarse (LOB's, ...) se aceptan consejos.
SELECT (CASE
WHEN column_id = 1 THEN col.table_name
WHEN column_id = 2 THEN tab.comments
ELSE NULL
END ) tabla,
col.column_name columna,colcom.comments,
(CASE WHEN data_type = 'NUMBER'
THEN (CASE WHEN data_precision IS NULL THEN data_type ELSE data_type || '(' || data_precision || ',' || data_scale || ')' END )
WHEN data_type = 'DATE' THEN data_type
ELSE data_type || '(' || data_length || ')'
END ) tipo,
(CASE
WHEN nullable = 'Y' THEN 'NULL'
ELSE 'NOT NULL'
END) nullable
FROM user_objects obj, user_tab_columns col, user_tab_comments tab, user_col_comments colcom
WHERE col.table_name = obj.object_name AND col.table_name = tab.table_name
AND col.table_name = colcom.table_name AND col.column_name = colcom.column_name
AND obj.object_type = 'TABLE'
ORDER BY col.table_name, col.column_id;
No hay comentarios:
Publicar un comentario