C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 72 を表示中)
■41854 / )  Re[7]: オラクル:採番を作りたいです
□投稿者/ ふるふる (29回)-(2009/10/01(Thu) 15:31:39)
解決方法として、今2通りの方法が上がっています。それぞれの注意点を提起しておきます。

(1) Sequenceを使う方法
 Sequenceはテーブルとは別のオブジェクトなので、NextValで常に次の値を持ってきてくれます。
 これは逆に言うと、日付の中で連番が作られるわけではない、ということです。
 200909300001,200909300002, 200909300003
 が作られ、次の日には
 200910010004
 から作られる、ということです。

(2) Max+1を使う方法
 これは日付ごとに0001からの連番を作成できます。問題としては、トランザクションをきちんと
 考えないといけないということです。
 同時に複数のユーザーからの実行で、同一の連番が作成されてしまう、という問題が発生するでしょう。
 レコードがない場合にはMax+1 の代わりに、1を使うようにすれば良いでしょう。あるいはNVL関数で0に変換するとか。

 
 

返信 編集キー/


管理者用

- Child Tree -