ROWID疑似列

ROWID疑似列は、データベース内の各行について、行のアドレスを戻します。Oracle DatabaseのROWID値には、行を検索するために必要な次の情報が含まれています。

  • オブジェクトのデータ・オブジェクト番号。

  • 行が存在するデータファイルのデータ・ブロック。

  • データ・ブロック内での行の位置(最初の行は0)。

  • 行が存在するデータファイル(最初のファイルは1)。ファイル番号は表領域に対して相対的です。

ほとんどの場合、ROWID値ではデータベース内の行は一意に識別されます。ただし、同じクラスタに格納されている異なる表の行は、同じROWIDを持つことができます。

ROWID疑似列の値はROWIDまたはUROWIDデータ型を持ちます。詳細は、ROWIDデータ型およびUROWIDデータ型を参照してください。

ROWID値には、次の重要な用途があります。

  • 単一の行に最も速くアクセスする方法です。

  • 表の行が格納されている様子を示すことができます。

  • これは、表の各行の一意識別子です。

表の主キーとしてROWIDを使用しないでください。たとえば、インポート・ユーティリティとエクスポート・ユーティリティで行を削除してから再挿入する場合、ROWIDが変わる場合があります。行を削除した場合、Oracleは、後から新しく挿入される行にそのROWIDを再度割り当てる可能性があります。

問合せのSELECT句とWHERE句でROWID疑似列を使用できますが、これらの疑似列の値が実際にデータベースに格納されるわけではありません。ROWID疑似列の値に対して挿入、更新および削除はできません。

次の文は、部門20の従業員のデータを含むすべての行のアドレスを選択します。

SELECT ROWID, last_name
  FROM employees
  WHERE department_id = 20;