Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quelle table Oracle utilise une séquence ?

Le problème est qu'Oracle nous permet d'utiliser une séquence pour remplir les colonnes de plusieurs tables. Les scénarios où cela pourrait être souhaitable incluent les implémentations de super-type/sous-type.

Vous pouvez utiliser les dépendances du dictionnaire de données pour identifier les relations. Par exemple, si vous utilisez des déclencheurs pour attribuer les valeurs, cette requête vous aidera :

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'
/

Si vous utilisez PL/SQL, vous pouvez écrire quelque chose de similaire pour TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION') , bien que vous ayez toujours besoin de parcourir le code source pour attribuer des tables et des séquences lorsque vous avez plusieurs occurrences.