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はこのセッションではまだ定義されていません」を表示され実行エラーになるので注意してください。