Sql 未显示添加属性的子类型对象的超类型表

Sql 未显示添加属性的子类型对象的超类型表,sql,oracle,oracle-xe,Sql,Oracle,Oracle Xe,我试图创建一个包含子类型对象的超类型对象表,但运行insert once后的底线显示了插入的前两个属性SSN和name。甲骨文快递最近刚刚坏了吗?还是我的代码有问题 create or replace type PersonType as object ( SSN number (9), name varchar2(30)) Instantiable NOT Final; create or replace type TenantType under PersonType (

我试图创建一个包含子类型对象的超类型对象表,但运行insert once后的底线显示了插入的前两个属性SSN和name。甲骨文快递最近刚刚坏了吗?还是我的代码有问题

create or replace type PersonType as object (
  SSN number (9),
  name varchar2(30))
  Instantiable
  NOT Final;

create or replace type TenantType under PersonType (
  aptNum REF ApartmentType,
  phone number(10),
  car varchar2(15),
  contract varchar2(10));
  Instantiable
  Final;

create or replace type EmployeeType under PersonType (
  empId number(4),
  empAdr varchar2(40));
  Instantiable
  Final;

create table P1 of PersonType (
  constraint P1_SSN_pk Primary Key (SSN));

insert into P1 values(TenantType(956785252, 'Jerry Wilson', (select ref(a) from A1 a where aptNum = 110), 8015167895, 'Toyota', '8 months'));

如果运行“简单选择”,则会看到超类型的公共值。创建类型时,可以添加成员函数以不同方式显示子类型,也可以使用:

您有打字错误(类型定义中不必要的分号),并且缺少
ApartmentType
和表
a1
的定义,因此以下是我的测试数据:

下面是提到的成员函数
show()
的示例:

select treat(value(p) as tenanttype) from p1 p where p.ssn = 956785252