首页 > 解决方案 > 在 Oracle 中,如果在 ALL_SOURCE 中不可用,我如何查看另一个模式的触发代码?

问题描述

我的程序使用 FOO 用户 ID 登录到 Oracle DB。它需要检索 BAR 模式中触发器的源代码,但无法从 ALL_SOURCE 表中访问触发器(我猜测是由于配置)。我可以使用 Toad for Oracle 查看源代码,因此我假设我可以使用其他一些方法来检索触发器源代码。

当我执行查询时:

SQL> SELECT DISTINCT owner
  2  FROM all_triggers;

我得到了这些结果,这是我所期望的:

OWNER
------------------------------
FOO
BAR

当我执行查询时:

SQL> SELECT DISTINCT owner
  2  FROM all_source;

我没有得到“SYS,FOO,BAR”的预期结果。相反,我得到:

OWNER
------------------------------
SYS
FOO

我的程序无权登录 BAR 模式,因此我无法使用它和 USER_SOURCE 表。

由于我可以在 Toad for Oracle 中查看源代码,因此 FOO 模式具有某种查看代码的权限,但我不知道它是如何做到的。我的程序如何检索 BAR 的触发器源代码?

编辑:我无权访问 DBA_SOURCE。

标签: oracletriggers

解决方案


推荐阅读