1

次のコードの違いは何ですか?

CREATE TYPE f1_MemberType AS OBJECT (
NINum VARCHAR2(10),
Name VARCHAR2(20),
Address f1_AddressType)
/

CREATE TYPE f1_MemberType AS OBJECT (
NINum VARCHAR2(10),
Name VARCHAR2(20),
Address REF f1_AddressType)
/

編集

要素に型を与えるだけでなく、REFを使用する理由は何ですか?

4

1 に答える 1

1

違いは、参照が実際のオブジェクトへのポインタとしてメモリに保持されることです。実際のオブジェクトは、データとして使用するために逆参照する必要があります。

参照は、データ自体をコピーするよりも安価にオブジェクト間でコピーできます(ポインターは、文字列や日付などを含む可能性のある複数のフィールドではなく、1つの単純な数値メモリアドレスになるため)。これにより、参照されるオブジェクトの実際のデータが必要なときにポインターを逆参照する必要がありますが、F1_MemberTypeのインスタンス間でアドレスを簡単にコピーできます。

于 2012-04-04T21:42:43.743 に答える