シーケンスから値を取得するサンプルです。
最新の値を発番して取得する(NEXTVAL)
最新の値を発番して取得するには、NEXTVALを使用します。
- (構文)
- <シーケンス名>.NEXTVAL
NEXTVALのサンプル
以下のように発番した値を取得できます。
1 |
SELECT SEQ_CD1.NEXTVAL FROM tab; |
INSERT文に指定することもできます。
1 2 3 4 5 6 |
INSERT INTO M_USER VALUES( SEQ_CD1.NEXTVAL ,'山田太郎' ); |
最後に発番した値を取得する(CURRVAL)
最後に発番した値を取得するには、CURRVALを使用します。
- (構文)
- <シーケンス名>.CURRVAL
CURRVALのサンプル
以下のように値を取得できます。
1 |
SELECT SEQ_CD1.CURRVAL FROM tab; |
SELECT文やINSERT文に指定することもできます。
1 2 |
SELECT * FROM M_USER WHERE USER_ID = SEQ_CD1.NEXTVAL; |
解説
- 現セッション内で一度もNEXTVALを実行していない状態で、CURRVALを実行するとORA-08002エラーが発生します。
⇒ [ORAエラー] ORA-08002: 順序XXX.CURRVALはこのセッションではまだ定義されていません