Consulta de tablas que apuntan a una

Este es un script para obtener un listado con las claves foráneas que apuntan a la tabla que le pasan como parámetro. Es útil si tenemos la buena costumbre de nombrar las claves con algún sufijo o prefijo que nos indiquen el tipo. Si no, sería necesario agregar más columnas a la select. También podría interesar agregar una columna con el nombre del propietario de la clave foránea.

-- Script para obtener la lista de claves foráneas que 
-- referencian a una tabla
-- http://www.tsoracle.com
---------------
-- Sets varios
--------------
SET VERIFY OFF
------------
-- Parámetros
------------
ACCEPT propi PROMPT "Propietario (enter para usuario conectado): "
ACCEPT tabla PROMPT "Nombre de la tabla: "
BREAK ON TABLE_NAME
------------
-- Select
------------
PROMPT Tablas que referencian a &&tabla
SELECT R.TABLE_NAME, R.CONSTRAINT_NAME,
       T.CONSTRAINT_NAME AS CLAVE_REFERENCIADA
FROM   ALL_CONSTRAINTS T, ALL_CONSTRAINTS R
WHERE  T.OWNER      = NVL( UPPER( '&&propi' ), USER ) -- El valor por defecto es el usuario conectado
  AND  T.TABLE_NAME = UPPER( '&&tabla' )
  AND  T.CONSTRAINT_TYPE IN ( 'P', 'U' ) -- Que sean pk o uk
  AND  R.R_OWNER           = T.OWNER
  AND  R.R_CONSTRAINT_NAME = T.CONSTRAINT_NAME
  AND  R.CONSTRAINT_TYPE   = 'R'         -- Que sea una fk
ORDER BY R.TABLE_NAME, R.CONSTRAINT_NAME
/
---------------------
-- Restauro el verify
---------------------
SET VERIFY ON
Anuncios