不幸的是,我不能提供任何代码,但我会尽力解释,并会在必要时提供额外的信息。
在这个场景中有 3 种不同的模式在起作用:X_SCHM、APPS 和 HR
APPS 有一个名为 X_PKG 的包来运行资源的某些功能,并且 X_PKG 还调用 HR 模式拥有的包 HR_EMPLOYEE_API 中的过程。APPS 将 X_PKG 的执行权限授予 X_SCHM,X_SCHM 可以成功调用 X_PKG 内部的过程。
但是,我想尽可能远离 APPS 并进入 X_SCHM,因此 X_PKG 的包体被复制到 X_SCHM 中的新 X2_PKG。X2_PKG 仍然需要调用 HR_EMPLOYEE_API 中的过程,因此授予 X_SCHM 以执行该包。
现在,当 X_SCHM 尝试调用与 APPS 拥有的 X_PKG 相同的所有帐户的 X2_PKG 时,它成功进入 HR 拥有的 HR_EMPLOYEE_API,然后开始在其中运行“表或视图不存在”错误,APPS 或X_SCHM 运行 APPS 拥有的 X_PKG 不会遇到。
我不确定这是否是需要额外拨款的问题。我认为由于 X_SCHM 对 HR_EMPLOYEE_API 具有执行权限,因此它从 HR_EMPLOYEE_API 调用的程序将能够访问 HR 拥有的表,除非我缺少关于需要自己授予的权限的包的信息,这些包需要与拥有它们的模式分开。
请让我知道我可以在哪里更清楚或提供更多信息以解决此问题。