- 締切済み
oracle sequence
oracleのシーケンスでdual表からselect文のnextvalで取得したものをインサート したいのですが、ループ内で上記処理を複数回行ったときに、値が一回目以降 更新されずに困っています。 例) for (i=0;i < 5){ (1)セレクト文発行しシーケンスを取得。 (2)取得したシーケンスを変数にセット (3)インサート実行(主キーに取得したシーケンスをセット) } こんな感じで実行したときに、はじめはシーケンスが+1されますが、 それ以降シーケンスが増加しません。そのため、重複エラーが発生してしまいます。。。 どのように対処したらよいのかまったく見当がつきません。 大変申し訳ないのですが、ご教示いただきたくよろしくお願い申し上げます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
noname#212058
回答No.1
例の疑似コードでは別に問題点が見つかりませんので、 実際のコード中のどこかにバグがあるんだと思います。 『(1)で取得した値が+1されているかどうか』を第1歩として コードレベルの誤りを探すしかないです。 おそらく(1)の時点では+1した値が取れているのに、(2)~ (3)の処理に問題があってデータが更新されていないので はないかと推測します。