Oracle – Encontrando referências para uma tabela

oracle

Hoje tive um problema ao realizar um drop em uma tabela. Ela possuía alguma tabela referenciada, porém o erro não indicava qual.

Para descobrir quais tabelas estavam referenciando ela usei esta query marota:

SELECT table_name,
  constraint_name,
  status,
  owner
FROM all_constraints
WHERE
  r_owner = 'NOME DO OWNER'
  AND constraint_type = 'R'
  AND r_constraint_name IN (
    SELECT constraint_name
    FROM all_constraints
    WHERE constraint_type IN ('P', 'U')
      AND table_name = 'NOME DA TABELA'
      AND owner = 'NOME DO OWNER'
  )
ORDER BY table_name, constraint_name;

Fonte: Stack Overflow