Il problema è che Oracle ci consente di utilizzare una sequenza per popolare colonne in più tabelle. Gli scenari in cui ciò potrebbe essere desiderabile includono implementazioni di tipo super-tipo/sottotipo.
È possibile utilizzare le dipendenze nel dizionario dati per identificare le relazioni. Per esempio, se si utilizza i trigger per assegnare i valori, allora questa query vi aiuterà a:
select ut.table_name
, ud.referenced_name as sequence_name
from user_dependencies ud
join user_triggers ut on (ut.trigger_name = ud.name)
where ud.type='TRIGGER'
and ud.referenced_type='SEQUENCE'
/
Se si utilizza PL/SQL allora si può scrivere qualcosa di simile per TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION')
, anche se sarà ancora bisogno di un po 'di pesca a strascico attraverso la sorgente codice per assegnare tabelle e sequenze quando si hanno più accessi.
Oracle non la tiene traccia perché non esiste tale relazione, tranne che per convenzione. Questo è il motivo per cui di solito usi un qualche tipo di convenzione di denominazione, ad es. la tabella XYZ ha una sequenza SEQ_XYZ. –