こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

oracle sequence

oracleのシーケンスでdual表からselect文のnextvalで取得したものをインサート
したいのですが、ループ内で上記処理を複数回行ったときに、値が一回目以降
更新されずに困っています。

例)
for (i=0;i < 5){
(1)セレクト文発行しシーケンスを取得。
(2)取得したシーケンスを変数にセット
(3)インサート実行(主キーに取得したシーケンスをセット)
}
こんな感じで実行したときに、はじめはシーケンスが+1されますが、
それ以降シーケンスが増加しません。そのため、重複エラーが発生してしまいます。。。
どのように対処したらよいのかまったく見当がつきません。
大変申し訳ないのですが、ご教示いただきたくよろしくお願い申し上げます。

投稿日時 - 2014-02-11 00:53:44

QNo.8470081

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(1)

例の疑似コードでは別に問題点が見つかりませんので、
実際のコード中のどこかにバグがあるんだと思います。
『(1)で取得した値が+1されているかどうか』を第1歩として
コードレベルの誤りを探すしかないです。

おそらく(1)の時点では+1した値が取れているのに、(2)~
(3)の処理に問題があってデータが更新されていないので
はないかと推測します。

投稿日時 - 2014-02-11 14:57:56

あなたにオススメの質問