我在获取SEQUENCE时遇到问题。我已经以管理员身份创建了一个序列,并向其他用户授予了选择和更改特权。
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
我可以在列表中看到我的SEQUENCE。
但是我无法访问代码中的序列。使用 :
select <SEQUNCE_name>.nextval from dual;
我究竟做错了什么?
您将必须通过以下方式完全限定您的顺序:
SELECT <owner>.<sequence name>.nextval FROM dual;
或为其创建公共同义词:
CREATE PUBLIC SYNONYM TOT_SEQ for OWNER.TOT_SEQ; SELECT TOT_SEQ.nexval FROM DUAL;