无法在Oracle中使用函数,过程或seq的同义词

时间:2014-03-21 13:18:32

标签: oracle synonym

我已经从用户ID XXX中为userid YYY中的functions / proc / seq创建了同义词。

create SYNONYM my_seq FOR XXX.my_seq

当我尝试在用户YYY中使用seq时,我收到以下错误:

ORA-00942:表或视图不存在

和功能: ORA-00904 ::标识符无效

请告诉我我在哪里做错了。

2 个答案:

答案 0 :(得分:1)

我将用一个简单的例子来演示。我在一台服务器上有两个模式。 Schema1和Schema2。

我登录Schema1并运行下面的脚本。

-- Create sequence 
create sequence originalSeq
minvalue 1
maxvalue 999999999999999999999999
start with 1
increment by 10
cache 20;


GRANT SELECT ON originalSeq TO SCHEMA2;

然后我登录Schema2并运行以下脚本。

    create or replace synonym pointertooriginalsreq
      for SCHEMA1.originalSeq;  

select pointertooriginalsreq.nextval from dual

这应该适用于所有版本的 Oracle 8.1.7 以上版本。如果您仍然遇到问题,请告诉我。

答案 1 :(得分:0)

您必须提供XXX用户的授权:

GRANT SELECT ON my_seq TO YYY;