プロが教える店舗&オフィスのセキュリティ対策術

Oracleの初心者ですが
OracleのRowidは
どのタイミングで更新されるのですか?
それとも更新されないのかな?
とりあえず全く分かりません。

VBでコネクションの確立から開放までは
DML文をどれだけ発行しても
rowidの値は同じなのでしょうか?

A 回答 (2件)

こんにちわ


補足します。

Oracle のROWID 列は、以下の情報を組み合わせたものです。
・オブジェクト番号 (表やパーティション等を一意に識別する番号)
・データファイル番号 (表領域を構成しているファイル番号)
・データブロック番号 (データファイル内のブロック番号)
・行番号 (ブロック内の行番号)
従って、処理の途中で変更される事はありません。
詳細は、「Oracle8i 概要 第12章 組込みデータ型」に記述があります。

ROWID は、Oracle が一意の行を識別する方法としては一番効率の
良い方法です。
索引検索も内部的には、キーからROWID を検索してROWID を基に
表アクセスを行っています。

マニュアルについては、ユーザ登録 (無料) が必要ですが、OTN Japan
にPDF 形式のマニュアルが公開されていますので、必要であれば
Download されてはいかがでしょうか?

参考URL:http://technet.oracle.co.jp/
    • good
    • 0
この回答へのお礼

説明ありがとうございます。
マニュアルについては早速ダウンロードしてみます。

お礼日時:2002/10/17 18:19

ROWIDは行が割り当てられたとき(INSERT時)に設定されます。


行が表から削除(DELETE)されると(そしてそれを含むトランザクションがコミットされると)、削除された行に対応付けられていたROWIDは開放され、後続のトランザクションで挿入する行に割り当たる場合があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!