Oracle 10:是否可以访问存储过程或包中的表的公共同义词?

时间:2009-09-03 19:41:40

标签: oracle stored-procedures package ora-00942

我一直在努力尝试在oracle中的包或存储过程中添加对公共同义词的引用一段时间,我想知道是否有解决这个问题的方法,而不是直接访问表。例如:

CREATE OR REPLACE PROCEDURE test_func AS
  test_int INTEGER;<br>
BEGIN<br>
  select count(*) INTO test_int FROM test_synonym;
END;
/

我知道这个程序什么都不做,但这只是一个例子。表'test_synonym'实际上是另一个模式中表的公共同义词。我对该表有选择权限,但尝试重复编译会给我一个错误:

Error(5,38): PL/SQL: ORA-00942: table or view does not exist

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

您创建过程的架构是否指示 SELECT privs(即不通过角色?)

创建过程(函数/包)时,需要直接授予对表的权限,而不是通过角色授予权限。