問題は、Oracleでは1つのシーケンスを使用して複数のテーブルの列にデータを入力できることです。これが望ましいシナリオには、スーパータイプ/サブタイプの実装が含まれます。
データディクショナリの依存関係を使用して、関係を識別することができます。たとえば、トリガーを使用して値を割り当てる場合、このクエリは次のことに役立ちます。
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'
/
PL / SQLを使用する場合は、TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION')
に類似したものを記述できます。 、ただし、複数のヒットがある場合は、テーブルとシーケンスを割り当てるためにソースコードをトロールする必要があります。