ROWID疑似列
ROWID
疑似列は、データベース内の各行について、行のアドレスを戻します。Oracle DatabaseのROWID値には、行を検索するために必要な次の情報が含まれています。
-
オブジェクトのデータ・オブジェクト番号。
-
行が存在するデータファイルのデータ・ブロック。
-
データ・ブロック内での行の位置(最初の行は0)。
-
行が存在するデータファイル(最初のファイルは1)。ファイル番号は表領域に対して相対的です。
ほとんどの場合、ROWID値ではデータベース内の行は一意に識別されます。ただし、同じクラスタに格納されている異なる表の行は、同じROWIDを持つことができます。
ROWID
疑似列の値はROWID
またはUROWID
データ型を持ちます。詳細は、ROWIDデータ型およびUROWIDデータ型を参照してください。
-
単一の行に最も速くアクセスする方法です。
-
表の行が格納されている様子を示すことができます。
-
これは、表の各行の一意識別子です。
表の主キーとしてROWID
を使用しないでください。たとえば、インポート・ユーティリティとエクスポート・ユーティリティで行を削除してから再挿入する場合、ROWIDが変わる場合があります。行を削除した場合、Oracleは、後から新しく挿入される行にそのROWIDを再度割り当てる可能性があります。
問合せのSELECT
句とWHERE
句でROWID
疑似列を使用できますが、これらの疑似列の値が実際にデータベースに格納されるわけではありません。ROWID
疑似列の値に対して挿入、更新および削除はできません。
例
次の文は、部門20の従業員のデータを含むすべての行のアドレスを選択します。
SELECT ROWID, last_name FROM employees WHERE department_id = 20;