0

オブジェクト リレーショナル モデルのオブジェクト識別子 (OID) とリレーショナル モデルのレコード ID (RID) の違いは何ですか?

4

1 に答える 1

1

どちらも同じ目的を果たしますが、スコープは異なります。レコードは pl/sql ブロッ​​ク内で宣言されていますが、オブジェクトはデータベースで宣言されています。これは、レコードが pl/sql ブロッ​​ク タイプであり、オブジェクトがスキーマ オブジェクトであることを意味します。

declare
type c is record(a number, b number);
begin
---
---
---
end;

create type subtype1 is object(a number, b number);

Oracle が行オブジェクトへの REF を構築する場合、構築された REF は、オブジェクト識別子、オブジェクト テーブルの一部のメタデータ、およびオプションでROWIDで構成されます。

REF タイプの列の REF のサイズは、列に関連付けられた記憶域プロパティによって異なります。たとえば、列が REF WITH ROWID として宣言されている場合、Oracle は ROWID を REF 列に格納します。制約付き REF 列のオブジェクト参照では、ROWIDヒントは無視されます。

列がSCOPE句を含む REF として宣言されている場合、列は、オブジェクト表のメタデータとROWIDを省略して小さくなります。スコープ付き REF の長さは 16 バイトです。

于 2013-09-25T05:39:38.203 に答える