1

以下の2種類のコンストラクタを作成したい。コードは次のとおりです。

create or replace type toys_t as table of varchar2(40);

create or replace type kid_t as object (
      name varchar2(10), 
      toys toys_t,
      constructor function kid_t (name varchar2) return self as result);

create table kid of kid_t nested table toys store as table_toys;

ネストされたテーブル型のユーザー定義コンストラクターを作成する方法はありますか?それとも、構文toys_tを使用して作成された TYPE に対してのみサポートされていますか?as object

ありがとう

ボブ

4

2 に答える 2

2

のようなコレクションのコンストラクタが自動的に存在しますtoys_t。コレクションの名前を使用するだけです

SQL> insert into kid values( 'Bobby', toys_t( 'Bike', 'Ball', 'Legos' ));

1 row created.

コンストラクターは、toys_t0、1、または複数のパラメーターを取ることができます。

于 2012-06-16T15:50:33.710 に答える
2

toys_tいいえ、テーブルのような型に対してユーザー定義のコンストラクターを宣言することはできません。コレクション型 (ネストした表または VARRAY) には、デフォルトのコンストラクターのみがあります。できることは、引数なしでコレクションをインスタンス化するときに適用されるデフォルトを指定することだけです。 詳細をご覧ください。

于 2012-06-16T16:47:19.853 に答える