我在获取序列时遇到问题。 我已以管理员身份创建了一个序列,并已向其他用户授予选择和更改权限。
CREATE SEQUENCE "OWNER"."TOT_SEQ" MINVALUE 1000 MAXVALUE 1000000000 INCREMENT BY 1 START WITH 1000 CACHE 20 NOORDER NOCYCLE ;
grant select,ALTER on TOT_SEQ to user;
commit;
当我这样做时:
select sequence_name from all_sequences;
TOT_SEQ
我可以在列表中看到我的序列。
但我无法访问代码中的序列。使用:
select <SEQUNCE_name>.nextval from dual;
我做错了什么?
最佳答案
您必须通过以下方式完全限定您的序列:
SELECT <owner>.<sequence name>.nextval FROM dual;
或者为其创建一个公共(public)同义词:
CREATE PUBLIC SYNONYM TOT_SEQ for OWNER.TOT_SEQ;
SELECT TOT_SEQ.nexval FROM DUAL;
关于sql - 序列不存在 ORA-02289,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25726573/