22/12/09

Oracle: Tablas que dependen de una dada


select CC.TABLE_NAME TablaQueReferencia,CC.COLUMN_NAME CampoDeEnlace,CC.POSITION PosicionDelCampo,C.CONSTRAINT_NAME NombreDelConstraint from all_constraints c
left join all_cons_columns cc
on c.constraint_name like cc.constraint_name
where c.constraint_type like 'R' -- Referencia
AND R_CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE
CONSTRAINT_TYPE LIKE 'P' -- Clave primaria
AND TABLE_NAME LIKE 'SERVIDORDAT')-- Nombre de la tabla a buscar sus dependientes
AND C.OWNER LIKE 'DESAR' AND CC.OWNER = 'DESAR'-- Nombre del esquema si hay varios
order by 1,2,3;

Hay que cambiar al nombre de la tabla y borrar lo del esquema si no hace falta.
Fundamental para poder borrar una tabla y saber qué otras tablas tienen referencias a ella.

Palabras clave (para búsqueda)
Oracle foreing key drop table clave foranea clave externa borrar tabla dependientes constraint constraints