Eu quero encontrar todos os objetos que fazem referência ao meu objeto.
Eu vim com esta consulta, esta é a melhor maneira de obter todas as referências a um objeto? (Eu sei que isso não inclui restrições, eu cuido disso separadamente)
Referências diretas ao objeto
SELECT object_id, owner, object_name, object_type
FROM sys.DBA_OBJECTS
WHERE object_id IN (select object_id
from public_dependency
where REFERENCED_OBJECT_ID = :id_object)
ORDER BY object_name
Além disso, na internet, encontrei consultas como as seguintes.
Referências diretas e indiretas ao objeto
SELECT object_id, owner, object_name, object_type
FROM sys.DBA_OBJECTS
WHERE object_id IN (SELECT object_id
FROM public_dependency
CONNECT BY PRIOR object_id = referenced_object_id
START WITH referenced_object_id = :objectId)
No entanto, se meu entendimento estiver correto, esta consulta não retorna apenas referências diretas, mas também dependências indiretas.
Por exemplo, se eu quiser as referências para object_A. Se object_B fizer referência a ele e object_C fizer referência a object_B. Essa consulta retornaria object_B e object_C como referências a object_A. Estou certo?
Depois de conversar com algumas pessoas com mais experiência em Oracle do que eu, elas me disseram que eu estava certo no meu entendimento.
Esta consulta retorna as referências a um objeto (exceto as restrições)