表和过程依赖

时间:2019-05-29 16:19:39

标签: oracle oracle11g

我是架构新手,不确定如何填充表(如何将数据插入表)。我们如何找到答案?

这应该有效。

select *
from dba_source
where upper(text) like '%TABLE_NAME%'

但是由于我没有DBA权限,因此无法执行此命令。另一种发现方法是什么?

2 个答案:

答案 0 :(得分:1)

要查看您有权访问的对象之间的依赖性,可以查询the all_dependencies data dictionary view。在这种情况下:

select * from all_dependencies where referenced_name = 'YOUR_TABLE_NAME';

如果对象位于您自己的架构中,则可以使用user_dependencies视图。如果您想查看没有特权的对象,则可以使用dba_dependencies,但是听起来好像您不太可能拥有查询该视图所需的特权,因为您看不到{{1} }。

当然,这只会标识存储的PL / SQL代码中的引用;它不会告诉您任何外部应用程序代码直接对数据库执行插入操作(而不是通过CRUD过程)或手动插入操作。

它只会告诉您哪些对象具有依赖性,您仍然需要通过查询dba_source(如果您是所有者,则为all_source)来挖掘对象源代码。相关的类型和名称。我会避免在注释中碰巧提到无法访问表名的注释,从而避免出现假阳性。您也可以在数据库外执行此操作-希望您的代码受源代码控制(对!?)。

答案 1 :(得分:0)

如果您知道需要运行查询但没有必要的特权,则可以使用USER_或ALL_视图编写查询以验证语法,然后将视图更改为DBA_并要求DBA运行查询你。