Jul 26
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | -- 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.
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 License.