1. oracle序列建立語法
CREATE SEQUENCE sequence //建立序列名稱
[INCREMENT BY n] //遞增的序列值是n 若是n是正數就遞增,若是是負數就遞減 默認是1
[START WITH n] //開始的值,遞增默認是minvalue 遞減是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循環/不循環
[{CACHE n | NOCACHE}];//分配並存入到內存中
2. oracle建立語法中的緩存做用
(參考:http://zhidao.baidu.com/link?url=5rNZnGdRJ9JPUVng3LrXtQ2pIuwTmpeEM4WRh7ibFWnXSJEDSKx1igdCEy0grG75wxH3WC5XOSaMK-e5k1xmOK)
當大量語句發生請求,申請序列時,爲了不序列在運用層實現序列而引發的性能瓶頸。Oracle序列容許將序列提早生成 cache x個先存入內存,在發生大量申請序列語句時,可直接到運行最快的內存中去獲得序列。但cache個數也不能設置太大,由於在數據庫重啓時,會清空內存信息,預存在內存中的序列會丟失,當數據庫再次啓動後,序列從上次內存中最大的序列號+1 開始存入cache x個。
3. 序列的查詢(以自增序列爲例)
建立自增序列:
create sequence s1 increment by 1 start with 1 maxvalue 999 cycle cache 10;
<1> 普通查詢
select s1.nextval 普通序列號 from dual;
<2> 固定格式的查詢----位數補零
select lpad(s1.nextval,3,'0') 補零序列號 from dual;
<3> 當前時間與自增序列結合.
select to_char(sysdate,'yyyyMMddHH24miss')||lpad(s1.nextval,3,'0') 時間與補零序列號 from dual;

4. 序列的刪除 drop sequence 序列名稱;