DDL de FKs que apuntan a una tabla

Uniendo el script que obtiene las tablas que apuntan a una con la utilidad del todopoderoso paquete DMBS_METADATA me he hecho otro script que me obtiene el ddl de las claves foráneas que apuntan a una tabla determinada. No sé si me volverá a hacer falta algún día pero por si acaso o por si a alguien más le interesa, aquí está el script:

-- Script para obtener el ddl de la lista de claves foráneas que
-- referencian a una tabla
-- http://www.tsoracle.com
---------------
-- Sets varios
--------------
SET VERIFY OFF
SET LONG 5000
------------
-- Parámetros
------------
ACCEPT propi PROMPT "Propietario (enter para usuario conectado): "
ACCEPT tabla PROMPT "Nombre de la tabla: "
BREAK ON TABLE_NAME
COLUMN DEFI FORMAT A120
------------
-- Select
------------
PROMPT Tablas que referencian a &&tabla
SELECT DBMS_METADATA.get_DDL( 'REF_CONSTRAINT', 
                              r.CONSTRAINT_NAME, 
                              r.OWNER ) 
       DEFI
FROM   ALL_CONSTRAINTS T, ALL_CONSTRAINTS R
WHERE  T.OWNER      = NVL( UPPER( '&&propi' ), USER )
  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

Sé que se nota que estoy flipao con el dbms_metadata pero es que no puedo creer que haya podido vivir tanto tiempo sin él. La de ríos de código que me podría haber ahorrado.

Anuncios