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
);

任何人都可以说出列addressdepositscustomer_ty对象表之间的区别吗?

4

1 回答 1

1

对象类型/抽象数据类型/记录就像一行或元组:它包含一组有序的属性。要填充,您必须为、和address中的每一个设置一个且仅一个值。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;

此外,您可能想使用 aVARCHAR2而不是VARCHARor CHAR。如果还不算太晚,那就扔掉所有这些物品,像其他人一样使用桌子。

于 2013-08-31T05:02:16.400 回答