例如,在查看this manual中的表时,可以使用“使用者”功能向您显示该表的使用位置(因此,如果在触发器中引用了表,将在此处显示) 。
如何在Toad之外的普通旧SQL中执行此操作?
我对查找使用序列和表格的地方特别感兴趣。
我已经查看了USER_TABLES,USER_TRIGGERS和USER_SEQUENCES的文档,但显然除了从元表中选择一些列外,还需要更多的东西。
答案 0 :(得分:5)
您可以使用user_dependencies
或all_dependencies
SELECT name AS dependant_object,
type,
owner object_owner
FROM all_dependencies
WHERE referenced_owner = user --Table owned by current user
AND referenced_type = 'TABLE' AND referenced_name = 'EMPLOYEES';
对于序列,您可以使用referenced_type = 'SEQUENCE'
另一种选择是扫描软件包/功能/过程和触发器的源代码。
SELECT *
FROM user_source
WHERE lower(text) like '%employees%'; --table name
SELECT *
FROM user_source
WHERE lower(text) like '%emp_seq.nextval%'; --sequence name
但是,由于employees_tmp
形式的表也将匹配,或者emp_seq . nextval
将不匹配,因此这并不完全可靠。