Oracle PL/SQL/Sequence/Sequence Properties

Материал из SQL эксперт
Версия от 09:55, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

A CYCLE sequence

SQL>
SQL> -- A CYCLE sequence
SQL>
SQL>
SQL> CREATE SEQUENCE StudentNumSeq
  2    INCREMENT BY 50000
  3    START WITH 50000
  4    MAXVALUE   99999
  5    NOCACHE
  6    CYCLE;
Sequence created.
SQL>
SQL>
SQL> select studentNumSeq.nextVal from dual;
   NEXTVAL
----------
     50000
SQL> select studentNumSeq.nextVal from dual;
   NEXTVAL
----------
         1
SQL> select studentNumSeq.nextVal from dual;
   NEXTVAL
----------
     50001
SQL>
SQL>
SQL> drop sequence studentNumSeq;
Sequence dropped.
SQL>
SQL>



A NOCYCLE sequence

SQL> -- A NOCYCLE sequence
SQL>
SQL>
SQL> CREATE SEQUENCE StudentNumSeq
  2    INCREMENT BY 50000
  3    START WITH 50000
  4    MAXVALUE   99999
  5    NOCACHE
  6    NOCYCLE;
Sequence created.
SQL>
SQL>
SQL> select studentNumSeq.nextVal from dual;
   NEXTVAL
----------
     50000
SQL> select studentNumSeq.nextVal from dual;
select studentNumSeq.nextVal from dual
                                  *
ERROR at line 1:
ORA-08004: sequence STUDENTNUMSEQ.NEXTVAL exceeds MAXVALUE and cannot be instantiated

SQL> select studentNumSeq.nextVal from dual;
select studentNumSeq.nextVal from dual
*
ERROR at line 1:
ORA-08004: sequence STUDENTNUMSEQ.NEXTVAL exceeds MAXVALUE and cannot be instantiated

SQL>
SQL>
SQL> drop sequence studentNumSeq;
Sequence dropped.
SQL>
SQL>



Sequence cache option

SQL>
SQL> -- the cache option specifies how many sequence values will be stored in memory for 
faster access
SQL>
SQL>
SQL> CREATE SEQUENCE mySequence
  2      MINVALUE 1
  3      MAXVALUE 999999999999999999999999999
  4      START WITH 1
  5      INCREMENT BY 1
  6      CACHE 20;
Sequence created.
SQL>
SQL> select mySequence.nextval from dual;
   NEXTVAL
----------
         1
SQL> select mySequence.nextval from dual;
   NEXTVAL
----------
         2
SQL> select mySequence.nextval from dual;
   NEXTVAL
----------
         3
SQL> select mySequence.nextval from dual;
   NEXTVAL
----------
         4
SQL>
SQL> drop sequence mySequence;
Sequence dropped.
SQL>
SQL>