1

一段时间以来,我一直在尝试在包或存储过程中添加对公共同义词的引用但没有成功,我想知道除了直接访问表之外是否有解决此问题的方法。例如:

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

谢谢你的时间。

4

1 回答 1

2

您在其中创建过程的架构是否具有直接的SELECT 权限(即不是通过角色?)

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

于 2009-09-03T19:45:14.153 回答