• 締切済み

Oracle:Oracleシーケンスとは?

mfukuの回答

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

「順序」のことを言います。 平たく言えば、Oracleが用意しているカウンターです。 一意に採番するコードを生成する際などに使用します。 CREATE SEQUENCE文で「順序(シーケンス)」を生成し、作成(CREATE)されたシーケンスオブジェクトから、新たな値を取り出すことが可能になります。

ct27
質問者

お礼

ご回答ありがとうございます。 なるほど、確かにSQL*PLUSでCREATE SEQUENCE~を作成すると 順序が作成されましたということをいわれますね。 Oracleが用意しているカウンターというのは非常にわかりやすい表現でした。

関連するQ&A

  • oracle8iでのシーケンス作成

    こんにちは。教えてください。 oracleのシーケンスなんですが、シーケンスを作成するときに cycleでmax値を超えると値が元に戻るっていうのがあると思うのですが、 それと同様に、たとえば2001年から2002年に変わったタイミングで シーケンスの値を1に戻す、という設定方法はあるのでしょうか。 よろしくご教授ください。

  • SQLServerでOracleシーケンスのような機構を実現するには

    いつもお世話になります。 SQLServerで自動採番される仕組みで何かいい方法がないかどうか悩んでいます。 主キーとなる項目に自動採番された値を、アプリケーションでセットした上で、DBに追加する仕組みを考えています。 OracleではSequenceのnextvalなどを使用すれば、番号を自動採番したものを取得することが可能ですが、 SQLServerでこのような仕組みを実現するために何か良い方法はありませんでしょうか? (追加先のDBはSQLServerではなく、自動採番等の機能も無いため、追加する前にアプリケーションでセットする必要がある。) 今までOracleしか使用したことが無く、SQLServerは初めてなので、ご教授頂きたく投稿しました。 よろしくお願いします。 SQLServerは2005を使用しています。

  • oracle sequence

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

  • Oracle10

    Oracle8やOracle9を今まで使っていたのですが、 Oracle10を今回インストールすることになりました。 Oracle8,9ではデータベースの作成後、ユーザーの作成を簡単に行えたのですが、今回うまく行かずにいます。 10でユーザーの作成を行おうとしたら、どのツールからどの様にして行えば良いのでしょうか? ご助力宜しくお願い致します

  • オラクルのシーケンスについて

    オラクルのSEQUENCEを使いたいのですが 作り方(CREATE文)が分かりません。 また出来上がったSEQUENCEはどのように 使うのでしょうか。

  • oracle8i?

    こんばんは。教えてください! 私はオラクルはデータベースだという認識はあるのですが、 実際使ったこともなければ動いているところ?を見たこともありません。 ですが、仕事で使っているシステムのデータベースの種類をある人に 伝えなければいけないので、前に聞いたとおり、その人には 「オラクル8iです」と答えました。 すると、その人は、「で、バージョンは?」と聞きました。 私は「え?オラクル8iです。」その人「いや、だからバージョンは?」 の繰り返しでした。 私が認識していた「Oracle8i」というのはオラクルのバージョンではないのでしょうか?? では、「Oracle8i」というのはなんなんでしょうか? 正しい答えを調べる方法と、「Oracle8i」がなんなのか、を教えていただきたいです。 宜しくお願いします!

  • オラクルのシーケンスについて

    オラクルのシーケンスですがCACHEを指定しないときはデフォルト20がとられるとのことですが、NEXTVALで採番したシーケンスがいきなり増分20で返されることはあるのでしょうか。 ex.1からNEXTVAL後21が戻される

  • oracle シーケンスの欠番を確認したい

    いつもお世話になります。 oracleのシーケンスの欠番を確認したいのですが、以下のようにサービス、インスタンスの再起動を試してみたのですが欠番はおきませんでした。 ・サービスの再起動 コントロールパネルから、サービスを開いて、「OracleServiceXE」、「OracleXETNSListener」の再起動。 シーケンスをselectした結果、欠番確認できず。 ・インスタンスの再起動 コマンドプロンプトを起動し、sqlplusから、sysdbaでoracleに接続。 shutdown、startupコマンドを行い、インスタンスを再起動。 シーケンスをselectした結果、欠番確認できず。 インスタンスの再起動を行えば欠番がおきる、というのをサイトで見たのですが、欠番は起きませんでした。なぜ起きないのでしょうか。 何か手順に不備があるのでしょうか。 alter system文による欠番は確認しています。 しかし、意図的にこのコマンドを発行しなければよいので、確認したいのは、通常運用時、データベースが起因してシーケンスの欠番が発生してしまう、ということです。 再起動などは普通に行うと思うので、その際に欠番が発生することを確認したいのです。 宜しくお願いします。 oracle:Oracle Database 11g Express Edition Release 11.2.0.2.0 OS:Windows Vista Home Promium 64bit

  • トリガーとシーケンスについて

    DBはOracle9i(Ver9.2.0.1かな?)です。 テスト環境から本番環境にデータ移行する際に テーブルも変更を加えました。 すると変更を加えたテーブルに関連するトリガーが未コンパイル状態になってしまいました。 仕方なく、再コンパイルするとトリガーに記述のあるシーケンスの最終番号が若干ずれていました。 コンパイルすることによってずれることがあるのでしょうか? シーケンスは初期化されたわけではなく、若干ずれてるだけです。 そのシーケンスを使用して登録処理を行っているので一意制約違反がでまくりです。 どなたかアドバイスお願いします。

  • Oracle8iとOracle9iは共存できるのか

    Oracleを扱うようになって間もない者です。 先日Oracle8iがインストールされている環境に、さらにOracle9iをインストールしました。 これってイイレギュラーなことですよね? 結果は、Oracleに接続できなくなりました。(sqlplusを使用したかったのですが、リスナーが何とかのエラーが返ってきます。) こういった場合、Oracle9iのみアンインストールをしたらOracle8iは使用(接続)可になるのでしょうか? Oracle9iのみアンインストールということが出来るのでしょうか? それとも、この状況は8i,9iともに使用(接続)不可で、両方アンインストールするしかないのでしょうか? 心優しい技術者・経験者の方、是非教えてください。 結構困っています。