0

Oracle DB に次のオブジェクト テーブルがあります。

create type deposit_ty as object
(
    depno number(6),
    depcategory ref depcategory_ty,
    amount number(6),
    period number(2)
);

create type deposit_ntty as table of deposit_ty;

create type address_ty as object
(
    homeno number,
    street varchar(30),
    city varchar(30)
);

create type customer_ty as object
(
    cusid char(4),
    custname varchar(40),
    address address_ty,
    dob DATE,
    deposits deposit_ntty
);

addresscolumnとdepositscustomer_ty オブジェクトテーブルの違いは何ですか?

4

1 に答える 1

1

オブジェクト型/抽象データ型/レコードは、行またはタプルに似ています。順序付けられた一連の属性が含まれています。設定するには、 、、およびaddressのそれぞれに 1 つの値のみを設定する必要があります。homenostreetcity

ネストした表は表に似ており、順序付けられていない一連の行が含まれています。通常、ネストされたテーブルには、数値などの単純な値のセットのみが含まれます。あなたの例では、それはオブジェクトタイプのセットです。データを入力depositsするには、任意の数の を作成できますdeposit_ty

例えば:

declare
  customer customer_ty :=
    customer_ty(
      'ABC',
      'Name',
      address_ty('123', 'fake street', 'Springfield'),
      sysdate,
      deposit_ntty(
        deposit_ty(1, null, 100, 1),
        deposit_ty(2, null, 200, 2)
      )
    );
begin
  null;
end;

また、おそらくorのVARCHAR2代わりにa を使用したいと思うでしょう。手遅れでなければ、このオブジェクト関連のものをすべて捨てて、他のみんなと同じようにテーブルを使用してください。VARCHARCHAR

于 2013-08-31T05:02:16.400 に答える