oracle中
1.如何查找用到了某个表的存储过程名
2.如何根据存储过程名,查找此存储过程用到了哪些表(不是直接去读存储过程)?有什么语句么?谢谢。
最好还能知道存储过程用到表时,是insert,select,或者是update?
1.如何查找用到了某个表的存储过程名
2.如何根据存储过程名,查找此存储过程用到了哪些表(不是直接去读存储过程)?有什么语句么?谢谢。
最好还能知道存储过程用到表时,是insert,select,或者是update?
在左边的objects对象树型浏览窗口中,找到相关对象
展开,再展开references(引用那些对象),referenced by(被那些对象引用)
一目了然。当然,你也可以从user_dependencies、dba_dependencies字典中查询--查询引用
SELECT t.referenced_owner, t.referenced_name, t.referenced_type
FROM dba_dependencies t
WHERE t.name = upper('&OBJECT_NAME');--查找被引用
SELECT t.name,T.type,t.referenced_owner, t.referenced_name, t.referenced_type
FROM dba_dependencies t
WHERE T.referenced_name = upper('&OBJECT_NAME');
a.text Like '%表名%';
1.如何查找用到了某个表的存储过程名
这样有个缺点,就是insert和update等操作有可能和表名不在一行,会遗漏。
你可以显示全部内容来避免这个问题
SELECT * FROM dba_source WHERE (owner,NAME,TYPE) IN (SELECT owner,NAME,TYPE FROM dba_source t WHERE t.owner='' AND UPPER(t.text) LIKE'%表名%' );
where text like '%表名%'
想从整理上看下各个table和sp的关系。。谢谢。