首页 > 解决方案 > 如何将 VARRAY 添加到 Oracle 对象

问题描述

我需要添加一个调用menuNumbers对象类型的 VARRAY,该对象类型SpecialEvent_t继承自Event_t.

我对这部分有点困惑。我在 Stack Overflow、GitHub 等中提到了大多数当前可用的解决方案。但是,这些解决方案都没有成功。

Event_t(
  EventID:char(5),
  EventType:varchar(20),
  VenueName:varchar(50),
  NoOfGuest:number(10)
) NOT FINAL

HotelEvent_t(
  Date:date,
  Price:numbr(8,2)
) UNDER Event_t

SpecialEvent_t(
  BookingDate:date,
  EndDate:date,
  MenuNumber:number(2),
  Reservation ref Reservation_t
) UNDER event_t

任何建议将不胜感激。

标签: databaseoracleuser-defined-types

解决方案


创建一个VARRAY类型:

CREATE TYPE numbers_varray AS VARRAY(10) OF NUMBER(10,0);

然后你可以在你的类型中使用它,就像你使用任何其他数据类型一样:

CREATE TYPE Event_t AS OBJECT(
  EventID   char(5),
  EventType varchar(20),
  VenueName varchar(50),
  NoOfGuest number(10)
) NOT FINAL;

CREATE TYPE HotelEvent_t UNDER Event_t (
  datetime date,                -- Date is a keyword, try to use a different name.
  Price  number(8,2)
);

CREATE TYPE SpecialEvent_t UNDER event_t (
  BookingDate date,
  EndDate     date,
  MenuNumbers  NUMBERS_VARRAY,
  Reservation ref Reservation_t
);

db<>小提琴


推荐阅读