Oracle 查找使用用户定义函数的存储过程?
我有一个用户定义的函数名 获取SPQ函数 这在许多存储过程中使用。现在我需要从函数中删除输入参数。它将影响许多SP。Oracle 查找使用用户定义函数的存储过程?,oracle,plsql,oracle11g,Oracle,Plsql,Oracle11g,我有一个用户定义的函数名 获取SPQ函数 这在许多存储过程中使用。现在我需要从函数中删除输入参数。它将影响许多SP。 是否有任何方法可以使用sql查询列出这些SP。要获得使用特定函数的存储过程列表(get\u SPQ\u function()),您可以查询(取决于授予的权限)[all][dba][user]查看。例如,如果函数GET\u SPQ\u function()由函数GET\u SPQ\u function1()使用,则对上述一个视图发出类似的查询,您将获得以下输出: SQL> s
是否有任何方法可以使用sql查询列出这些SP。要获得使用特定函数的存储过程列表(
get\u SPQ\u function()
),您可以查询(取决于授予的权限)[all
][dba
][user
]查看。例如,如果函数GET\u SPQ\u function()
由函数GET\u SPQ\u function1()
使用,则对上述一个视图发出类似的查询,您将获得以下输出:
SQL> select name as usedby
2 , type
3 , referenced_name
4 , dependency_type
5 from dba_dependencies
6 where referenced_name = 'GET_SPQ_FUNCION'
7 ;
Usedby Type Referenced Name Dependency Type
-------------------------------------------------------------
GET_SPQ_FUNCION1 FUNCTION GET_SPQ_FUNCION HARD
如果您使用SQLDeveloper(可能还有其他工具),您可以在源代码中搜索。这还不够吗?@Polppan:是的,我用蟾蜍。我需要搜索每个代码。我只是好奇我是否能用SQL列出。如果不是的话,我必须搜索individually@Mani如果您使用TOAD,在模式浏览器中,对于每个表、函数或过程,右侧有一个名为UsedBy的选项卡,它将提供正在使用的所有其他对象的信息。双击任何一个对象都将打开弹出窗口。这对于找出用户正在使用的其他对象非常有用。希望这将是有用的。