When you select currval , nextval remains unchanged; nextval only changes when you select nextval to get the next value. : Value « Sequences « Oracle PL/SQL Tutorial






SQL>
SQL> CREATE SEQUENCE test_seq;

Sequence created.

SQL>
SQL> SELECT test_seq.nextval FROM dual;

   NEXTVAL
----------
         1

SQL>
SQL> SELECT test_seq.nextval, test_seq.currval FROM dual;

   NEXTVAL    CURRVAL
---------- ----------
         2          2

SQL>
SQL> SELECT test_seq.nextval, test_seq.currval FROM dual;

   NEXTVAL    CURRVAL
---------- ----------
         3          3

SQL> SELECT test_seq.nextval, test_seq.currval FROM dual;

   NEXTVAL    CURRVAL
---------- ----------
         4          4

SQL>
SQL> SELECT test_seq.nextval, test_seq.currval FROM dual;

   NEXTVAL    CURRVAL
---------- ----------
         5          5

SQL>
SQL> SELECT test_seq.nextval, test_seq.currval FROM dual;

   NEXTVAL    CURRVAL
---------- ----------
         6          6

SQL>
SQL> SELECT test_seq.nextval, test_seq.currval FROM dual;

   NEXTVAL    CURRVAL
---------- ----------
         7          7

SQL>
SQL> drop sequence test_seq
  2  /

Sequence dropped.








5.6.Value
5.6.1.Set start value, mini/max value and cache
5.6.2.Once initialized, you can get the current value from the sequence using currval.
5.6.3.When you select currval , nextval remains unchanged; nextval only changes when you select nextval to get the next value.
5.6.4.Query current sequence value
5.6.5.Get next value from sequence
5.6.6.select deptno_seq.currval, deptno_seq.nextval
5.6.7.Automatically including unique sequence numbers during an INSERT.
5.6.8.Use dual table to check sequence
5.6.9.Random value based on sequence
5.6.10.If id is null, use the value from sequence