我已经从用户ID XXX中为userid YYY中的functions / proc / seq创建了同义词。
create SYNONYM my_seq FOR XXX.my_seq
当我尝试在用户YYY中使用seq时,我收到以下错误:
ORA-00942:表或视图不存在
和功能: ORA-00904 ::标识符无效
请告诉我我在哪里做错了。
答案 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;