ホームページ >データベース >Oracle >OracleでROWIDを使用する方法

OracleでROWIDを使用する方法

WBOY
WBOYオリジナル
2022-06-08 17:41:567218ブラウズ

Oracle では、rowid はデータへのアクセスに使用されます。これは、テーブル内の行を一意にマークする疑似列です。テーブル内のデータの各行には一意の識別子があります。構文は「select rowid.. ." ;rowid は、物理テーブル内の行データの内部アドレスです。そのうちの 1 つは、データ テーブル内の行を含むブロックに格納されているデータ ファイルのアドレスを指し、もう 1 つは、物理テーブル内のこの行のアドレスを指します。データ行自体を直接見つけることができるデータ ブロック。

OracleでROWIDを使用する方法

このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 12c、Dell G3 コンピューター。 Oracle の

rowid

rowid は、テーブル内の行を一意にマークするために使用される疑似列です。これは、物理テーブル内の行データの内部アドレスであり、データ テーブル内の行を含むブロックに格納されているデータ ファイルのアドレスと、データ テーブル内の行データを直接配置できる行の 2 つのアドレスが含まれます。データブロック内のデータ行自体のアドレス。

Oracle データベース テーブル内のデータの各行には一意の識別子 (ROWID) があり、通常は Oracle 内のデータにアクセスするために使用されます。 rowid は 10 バイトの記憶領域を必要とし、表示に 18 文字を使用します。この値は、Oracle データベース内の行の特定の物理的な場所を示します。 ROWID をクエリで使用すると、値がクエリ結果に含まれることを示すことができます。

OracleでROWIDを使用する方法

AAAR1yAAHAAAAFkAAA の例

ここで、AAAR1y はデータベース オブジェクト番号、AAH はファイル ラベル、AAAAFk はブロック番号、および最後の 3 桁です。 AAA は行番号です。

Use select * from DEPT; 出力結果に ROWID 列は表示されません。これは、この列がデータベースの内部でのみ使用され、ROWID は通常疑似列と呼ばれるためです。

OracleでROWIDを使用する方法

scott.emp のデータを選択して手動で変更する場合は、代わりに

select rowid,t.* from scott.emp t;

と記述する必要があります。 ## 直接。#

select * from emp;
select rowid,t.* from scott.emp t;
select * from scott.emp for update;

ROWID を使用して ORACLE 内のレコードを検索するのが最も速く、インデックス作成よりも速いため、最初に SELECT ROWID を使用して更新する行を選択し、それらを COLLECTION に入れてから、FORALL UPDATE を使用してバッチ更新により速度が向上します。この観点から見ると、他の方法よりも優れています。

SELECT FOR UPDATE は、更新前にレコードをロックします。これは、データのフィルタリング時にデータの整合性が要求されるなど、複雑な並列クエリ更新プログラムで必要です。その他の方法はそうではありません。データの変更が許可されており、FOR UPDATE または SET TRANSACTION READ ONLY でロックされます。さらに、CURSOR の WHERE CURRENT OF CURSOR ステートメントでは、FOR UPDATE を SELECT に追加する必要があります。

推奨チュートリアル: 「

Oracle Video Tutorial

以上がOracleでROWIDを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。