Oracle データベース

【Oracle】現在のシーケンス(sequence)の確認方法

Oracleのシーケンス(sequence)について、現在のシーケンス値を確認する方法をここにメモしておきます。

現在のシーケンス(sequence)の確認

最初にnextvalをしてシーケンスを取得する必要があります。

その後、現在値を取得する際はcurrvalを実行し、シーケンスを1増加させる場合はまたnextvalを実行します。

/*
構文
  SELECT <シーケンス名>.nextval FROM dual;
  SELECT <シーケンス名>.currval FROM dual;
*/

SQL> SELECT M_USER_SEQ.nextval FROM dual;
+--------------------+
|NEXTVAL             |
+--------------------+
|100                 |
+--------------------+


SQL> SELECT M_USER_SEQ.currval FROM dual; 
+--------------------+
|CURRVAL             |
+--------------------+
|100                 |
+--------------------+


SQL> SELECT M_USER_SEQ.nextval FROM dual;
+--------------------+
|NEXTVAL             |
+--------------------+
|101                 |
+--------------------+

一番最初にcurrvalを実行しても「ORA-08002:順序M_USER_SEQはこのセッションではまだ定義されていません」を表示され実行エラーになるので注意してください。

-Oracle, データベース