Obtener ddl de permisos DDL de FKs que apuntan a una tabla
Jul 25

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.

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
-- 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
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 License.

Comments are closed.