Oracle
 sql >> Database >  >> RDS >> Oracle

Quale tabella Oracle utilizza una sequenza?

Il problema è che Oracle ci consente di utilizzare una sequenza per popolare le colonne in più tabelle. Gli scenari in cui ciò potrebbe essere desiderabile includono implementazioni di super-tipo/sottotipo.

È possibile utilizzare le dipendenze nel dizionario dei dati per identificare le relazioni. Ad esempio, se utilizzi i trigger per assegnare i valori, questa query ti aiuterà:

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 usi PL/SQL, puoi scrivere qualcosa di simile per TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION') , anche se dovrai comunque esplorare il codice sorgente per assegnare tabelle e sequenze quando hai più hit.