オブジェクト リレーショナル モデルのオブジェクト識別子 (OID) とリレーショナル モデルのレコード ID (RID) の違いは何ですか?
1382 次
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 に答える