ROWIDは、行の物理的な場所です。したがって、これは行を見つけるための最速の方法であり、主キーの検索よりも高速です。したがって、いくつかの行を選択し、それらのROWIDを保存してから、後でwhere
でROWIDを使用する特定のタイプのトランザクションで役立ちます。 それらの同じ行に対するDMLの句。
WHERE CURRENT OFを使用してロックされた行を更新する場合、Oracle SELECT ...FORUPDATE構文は暗黙的にROWIDを使用します。また、EXCEPTIONSテーブル(EXCEPTIONS INTO句で制約を適用するときに参照される)には、列ROW_IDがあります。これにより、制約を破っている行をすばやく特定できます。
後者の例は、別の一般的な使用法を示しています。一般的なコードを記述していて、データ型や複合キーなどを気にせずにUIDを格納するメカニズムが必要な場合です。
一方、ROWNUMは、特定の結果セットの行にタグを付ける疑似列です。永続的な意味はありません。
編集
特定のレコードのROWIDは、たとえばテーブルの再構築を通じて、システムの存続期間中に変更される可能性があります。また、1つのレコードが削除された場合、そのROWIDに新しいレコードを指定できます。したがって、ROWIDは長期的にUIDとして使用するのには適していません。ただし、トランザクション内で使用するには十分です。