Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Welche Oracle-Tabelle verwendet eine Sequenz?

Das Problem ist, dass Oracle es uns erlaubt, eine Sequenz zu verwenden, um Spalten in mehreren Tabellen zu füllen. Szenarien, in denen dies wünschenswert sein könnte, umfassen Supertyp/Subtyp-Implementierungen.

Sie können die Abhängigkeiten im Datenwörterbuch verwenden, um Beziehungen zu identifizieren. Wenn Sie beispielsweise Trigger verwenden, um die Werte zuzuweisen, hilft Ihnen diese Abfrage:

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

Wenn Sie PL/SQL verwenden, können Sie etwas Ähnliches für TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION') schreiben , obwohl Sie immer noch den Quellcode durchforsten müssen, um Tabellen und Sequenzen zuzuweisen, wenn Sie mehrere Treffer haben.