这个场景是这样的……
我有一个命名空间XXX,我创建了一些表和一些存储过程…
他们有一个名称空间YYY他们创建了一些表…
他们授权XXX访问他们的表,所以当我使用XXX连接与SQL Developer连接时,我可以这样做:
SELECT * FROM YYY.TableA
但是,如果我尝试从存储过程(简单存储过程或包)内部运行相同的语句,则存储过程不会编译.它发生在很多sp上.我还有其他许可吗?我正在运行这样的sp:
CREATE OR REPLACE PROCEDURE PRC_SOMESP(
) AS BEGIN
END PRC_SOMESP;
不访问YYY表的过程编译得很好.
提前致谢.
在Justin Cave响应之后,我正在尝试将“AUTHID CURRENT_USER”句子添加到sp中,但得到相同的“表或视图不存在”结果:
CREATE OR REPLACE PROCEDURE PRC_PROC1( PARAMETERS... )
AUTHID CURRENT_USER
AS
MYVAR NUMBER;
BEGIN
STATEMENTS...
END PRC_PROC1;
CREATE OR REPLACE PACKAGE PKG_PROC2
AUTHID CURRENT_USER
AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE PRC_PROC2( PARAMETERS... )
END PKG_PROC2
我应该检查其他什么???