问题是Oracle允许我们使用一个序列来填充多个表中的列.可能需要这种情况的场景包括超类型/子类型实现.
您可以使用数据字典中的依赖项来标识关系.例如,如果您使用触发器来分配值,那么此查询将帮助您:
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'
/
Run Code Online (Sandbox Code Playgroud)
如果您使用PL/SQL,那么您可以编写类似的内容TYPE in ('PACKAGE BODY', 'PROCEDURE', 'FUNCTION'),但是当您有多个匹配时,仍然需要通过源代码进行拖网来分配表和序列.
在数据库中,您可以搜索模式中所有存储的代码,如下所示:
select type, name, line, text
from all_source
where owner = 'MYSCHEMA'
and upper(text) like '%MYSEQ.NEXTVAL%';
Run Code Online (Sandbox Code Playgroud)
在 SQL Developer 中,有一个报告可以执行此操作。
| 归档时间: |
|
| 查看次数: |
27991 次 |
| 最近记录: |