• 締切済み

Oracle:Oracleシーケンスとは?

Oracleシーケンスとは何者なのでしょうか? なにやら番号のようなものですよねえ・・・たぶん ということで以下について教えて下さい。 1.シーケンスとは何ですか? 2.Oracleシーケンスとは何ですか? 3.どのようにOracleシーケンスを取得するのですか? 以上、宜しくお願いいたします。

みんなの回答

  • riezo
  • ベストアンサー率0% (0/0)
回答No.4

こんにちは。 3. の質問に関してですが、sequence の今の値を取得するには currval を使用します。次の値を取るには nextval を使います。 Oracle 関係の書籍がたくさん出ているので一度読まれてはいかがでしょうか。基本的なことなのでどの本にも載っていると思います。 ちなみに、sequence は初期値、増分も設定できます。

ct27
質問者

お礼

ご回答ありがとうございます。 この質問を載せた後にがさごそ書籍を見渡してみたところriezoさんのご回答などがごにょごにょと記載されている ものを発見しました。便利なものがあるのだなあと今更ですが思ってしまいました。

全文を見る
すると、全ての回答が全文表示されます。
  • paz777
  • ベストアンサー率47% (77/163)
回答No.3

こんにちは。 補足です。 過去にOracleシーケンスの掲示がありましたので、 一度参考にしてみて下さい。 ではでは・・・

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=16747
ct27
質問者

お礼

補足ありがとうございます。 ACCESSにはオートナンバー型というものがあるんですね!勉強になります。

全文を見る
すると、全ての回答が全文表示されます。
  • sh0g0
  • ベストアンサー率40% (2/5)
回答No.2

シーケンスオブジェクトはロールバックの対象にはなりません。どうしても欠番を出したくないときはよく考えてデータベースを更新する必要があります。

ct27
質問者

お礼

ご回答ありがとうございます。 ロールバックの対象にならないということを生かせる場面では非常に有効的ですよね!

全文を見る
すると、全ての回答が全文表示されます。
  • 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ともに使用(接続)不可で、両方アンインストールするしかないのでしょうか? 心優しい技術者・経験者の方、是非教えてください。 結構困っています。

このQ&Aのポイント
  • テレビ朝日「モーニングショー」で、オリンピックでの酒類の販売に対して、「これはスポンサーが大打撃だ」という意見が玉川氏からありました。以前は、オリンピックで酒類を販売していいとなったら、我慢を強いられている飲食店から文句が出るぞ。と言っていて、こんどはスポンサーサイドからの意見ですか?どっちもどっちなんですかね。
  • また、新型コロナウイルスのワクチン接種について、准看護師がワクチン接種を拒否したことへの現場の医療への批判をしていましたが、リモート出演した医師が、きっぱりと医療の現場にワクチン接種は不可欠だ。という意見を言いました。これは、玉川氏も司会の羽鳥氏も顔が青ざめていました。やはり、番組の制作者サイドからは外れた意見なのだと思います。
  • どうも、この番組では「自由」を履き違えた制作者がいるようで、チグハグ感が否めません。責任ある医療の現場でワクチン接種を拒否した看護師が患者に接することの危険度を無視した制作者サイドの態度はやはり、控えた方が良いのではと思いますが、どう思われますか。
回答を見る