无法在Oracle中使用函数、过程或序列的同义词

无法在Oracle中使用函数、过程或序列的同义词,oracle,synonym,Oracle,Synonym,我已经从用户id XXX为userid YYY中的函数/proc/seq创建了同义词 create SYNONYM my_seq FOR XXX.my_seq 当我尝试在用户YYY中使用seq时,出现以下错误: ORA-00942:表或视图不存在 和函数:ORA-00904::无效标识符 请告诉我哪里做错了。我将用一个简单的例子来演示。我在一台服务器上有两个模式。方案1和方案2 我登录到Schema1并运行下面的脚本 -- Create sequence create sequence or

我已经从用户id XXX为userid YYY中的函数/proc/seq创建了同义词

create SYNONYM my_seq FOR XXX.my_seq
当我尝试在用户YYY中使用seq时,出现以下错误:

ORA-00942:表或视图不存在

和函数:ORA-00904::无效标识符


请告诉我哪里做错了。

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

我登录到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及以上的所有版本。如果您仍然面临问题,请告诉我。

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

GRANT SELECT ON my_seq TO YYY;

它显示在Sqldeveloper中的同义词列中。您需要修复对象的授权。您能帮我吗?实际上,我对Oracle DB很固执:D