Skip to content

特点

构造函数

在创建UDT时,为每个UDT隐式定义了一个构造函数。构造函数是系统提供的函数,用于在SQL语句或PL/SQL代码中构造类型值的实例。构造函数的名称是UDT的名称,参数是用户自定义类型的所有成员变量,返回值是该用户自定义类型。

说明:

OBJECT的构造函数支持重载,可以通过CONSTRUCTOR关键字重新自定义零个或多个不同参数的构造函数,且自定义的构造函数优先级高于默认构造函数。

继承(子类和超类)

OBJECT类型支持继承关系,被继承的类称为超类、基类或父类。子类在继承父类的属性和方法时,可以扩展自己的属性和方法。

比较和排序

  • 仅支持同一个模式下的同个UDT对象ID的UDT数据比较。
  • 仅支持UDT数据等值和不等值比较。
  • 支持UDT数据‘is null’或者‘is not null’比较。
  • PL/SQL支持表中数据与相同类型的数据等值和不等值比较。
  • PL/SQL支持具有相同成员或元素类型的临时类型的数据比较。
  • 不支持对UDT数据的排序,但若成员类型为基础类型,则支持成员值的排序。

赋值

  • SQL支持初始化赋值、构造函数赋值和复制赋值。
  • PL/SQL支持初始化赋值、构造函数赋值、成员赋值和复制赋值。

成员/元素

  • 构造类型的数据可以用“.”号访问,例如用obj.id访问obj对象的id成员。
  • 集合类型的数据可以通过指定索引,访问集合元素,例如用varr(1)访问varr数组的第一个元素。

依赖

对象类型、可变数组类型和嵌套表类型作为独立对象类型被使用时,需要添加该类型与使用者的依赖关系。

转换函数

不支持UDT和其他类型的相互转换与强制转换。