oracle序列參數:nextval和currval

分類:編程 時間:2016-11-03
Oracle序列參數:nextval和currval    序列的兩參數:nextval和currval。   Nextval  returns the next  avaiable sequence value.It returns a unique value every time it is referenced,even for different users.   Currval obtains the current sequence value.   打開第一個會話,創建個序列:   在調用currval的值前,必須先調用nextval的值。  
SQL> create sequence myseq1  increment by 10 start with 120 maxvalue 9999 nocache nocycle;
Sequence created.

SQL> select myseq1.currval  from dual;
select myseq1.currval  from dual
       *
ERROR at line 1:
ORA-08002: sequence MYSEQ1.CURRVAL is not yet defined in this session

 

  所以先調用nextval的值,第一個值是120。  
SQL> select myseq1.nextval from dual;
   NEXTVAL
----------
       120

 

  打開第二個會話,調用nextval的值會繼續增加為130。  
SQL> select myseq1.nextval from dual;
   NEXTVAL
----------
       130

 

  再回到第一個會話中,調用currval的值,  
SQL> select myseq1.currval from dual;
   CURRVAL
----------
       120

 

  可以看到currval的值並不是130,還是第一個會話上次的值,   調用nextval的值,  
SQL> select myseq1.nextval from dual;
   NEXTVAL
----------
       140

 

  可以看到,nextval的值是在第二會話的基礎上增加的。   所以nextval的值是每調用一次就增加一次;currval的值調用時,還是和自身會話的當前值一樣。
Tags:

文章來源:


ads
ads

相關文章
ads

相關文章

ad