Oracle Database 建立与查询 Sequence

2014-11-24 17:44:51 · 作者: · 浏览: 0

建立 Sequence 语法


create sequence ._s
increment by 1
start with 1
maxvalue 99999999999999999999
minvalue 1
nocycle;

其中 :
incerment: 每次增加的数值
start : Sequence 开始数值
maxvalue : Sequence 最大值
nocycle : 当 Sequence 达最大值时,不重头开始


取得下一笔 Sequence 值


select .nextval[@db_link]
from dual;


查询目前 Sequence 值


语法 1:
select .currval[@db_link]
from dual;

Mark 提供: 若 "目前所在的 DB Session" 尚未执行 nextval, 就先执行 currval, 则会得到
ORA-08002: sequence DB_SESSION_ID.CURRVAL is not yet defined in this session 错误.

语法 2:
select last_number - 1
from all_sequences
where sequence_name = '';


修改 Sequence


如: Alter Sequence MaxValue 999999999999999;


注意事项


1) Sequence 不能直接用在 "等式 :=" 之后.如: vID := tomSeq.nextval;
2) Sequence 可以直接用在 "SQL" 之中.如: insert into tomTable values( tomSeq.nextval, ... );