シーケンスを作成した後、そのシーケンスをインポートできます。
シーケンスを使用する際は、CURRVAL と NEXTVAL の前にシーケンス名を付け、ピリオド(.)でインポートする必要があります。
例えば、シーケンス名が SEQ_FOO の場合、SEQ_FOO.CURRVAL を使用して SEQ_FOO シーケンスの現在値を取得できます。同様に、SEQ_FOO.NEXTVAL を使用して SEQ_FOO シーケンスの次の自動増分値を取得できます。
シーケンスの CURRVAL と NEXTVAL の値は、以下の場所で使用できます:
トップレベルの
SELECTステートメントの選択リスト。INSERTステートメントのVALUE句。UPDATEステートメントのSET句。
例:
obclient> SELECT SEQUENCE_NAME.NEXTVAL FROM DUAL; /*Sequence番号は実行ごとに増加します*/
obclient> SELECT SEQUENCE_NAME.CURRVAL FROM DUAL; /*Sequence番号は何回実行しても変わりません*/
最初の NEXTVAL のインポートでは、シーケンスの初期値が返されます。その後の NEXTVAL のインポートでは、前回のシーケンスの返された値にシーケンス定義のステップサイズを加算した新しい値が返されます。CURRVAL へのいかなるインポートでも、最後の NEXTVAL のインポート時に返された値、つまり現在のシーケンス値が返されます。
セッション内でシーケンスの CURRVAL プセウドカラムをインポートする前に、まずシーケンスの NEXTVAL プセウドカラムを適用して、このセッションのシーケンス値を初期化する必要があります。
シーケンスを作成する際には、初期値と値間の増分を定義できます。NEXTVAL への最初のインポートでは、シーケンスの初期値が返されます。その後の NEXTVAL へのインポートでは、定義された増分に従ってシーケンス値が増加し、新しい値が返されます。CURRVAL へのいかなるインポートでも、常にそのシーケンスの現在値、つまり最後の NEXTVAL のインポート時に返された値が返されます。
関連ドキュメント
シーケンス関連のその他の操作については、以下のドキュメントを参照してください: