Estoy buscando una consulta que permita recuperar información de clave externa (cada línea: tabla y campo de referencia, tabla y campo de referencia) de un esquema completo.
He encontrado esto, pero no proporciona toda la información que necesito: /programming/4389228/sql-for-oracle-to-check-if-a-constraint-exists
Actualmente estoy trabajando en ello y puedo terminar con una solución en los próximos minutos / horas. Pero si alguien ya tiene una solución de trabajo completa, me alegrará saberlo :)
oracle
query
foreign-key
Z escarchado
fuente
fuente
Respuestas:
Después de un poco de "ingeniería inversa" en las consultas realizadas por la herramienta Navicat al abrir la ventana de la tabla de diseño para una tabla (las consultas que recuperan información sobre claves externas se muestran en la ventana del historial ), aquí hay una solución:
fuente
SQL Developer se entrega con un informe que hace exactamente esto.
Lo hace solo para el esquema de inicio de sesión, pero es una solución rápida para que obtenga todos los FK en la base de datos, aunque es posible que desee omitir esquemas como 'APEX ...' y 'SYS'.
También omite cosas como tablas en la papelera de reciclaje.
El informe original se encuentra en el panel Informes, en los informes del diccionario de datos.
Aquí está la consulta modificada para obtener TODOS los FK.
Y así es como se ve ese informe.
fuente
Un código un poco complicado que también arroja comentarios sobre cols (basado en el código Frosty):
Para que la salida sea más legible, la uso
break on TABLE_NAME;
ensqlplus
(mira mi pregunta /programming/14998296/print-only-first-unique-value-for-column-that-order-by-in-oracle-sqlplus / ).ACTUALIZACIÓN Consulta más simple que recopila una lista de tablas que tienen referencia de FK a una tabla determinada (útil si desea limpiar las restricciones después de cambiar el nombre de la tabla):
fuente