2007年6月28日木曜日

OracleシーケンスのNEXTVALとCURRVAL

スズキです。

Oracleシーケンスネタです。
http://suz-lab.blogspot.com/2007/06/oracleid.html

OracleでシーケンスなどでIDを発行してる場合、
発行したIDがプログラムで必要なる場合があります。
(IDをメールで送信したり、など)

まあ、やり方はこんな感じです。

--------データの登録
INSERT INTO XXX (
  ID,
  ...
) VALUES (
  XXX_ID_SEQ.NEXTVAL,
  ...
)
--------発行されたIDの取得
SELECT XXX_ID_SEQ.CURRVAL
FROM DUAL
--------
※シーケンス、XXX_ID_SEQが存在すると仮定

注意事項として、上記二つのSQLは同一セッションである必要があります。
また、同一インサート文内で、何回NEXTVALしても、値は一つしか増えません。

忙しいを理由にブログの更新をサボるのは負けだね。

--
blog: http://suz-lab.blogspot.com/

0 コメント: