0

假设我有那个层次结构,我该如何操作(添加、编辑)代理或客户端?

CREATE TYPE TPRENOM AS varray(3) OF VARCHAR2(20);

CREATE TYPE tadr as object(
  cp int  not null,
  state varchar2(20),
  city varchar2(20),
  street varchar2(20),
  doorNum int
);

create type tperson as object(
  fname varchar2(20),
  lname tprenom,
  adress tadr,
  phoneNum varchar2(10),
  email varchar2(50)
)not final;

create type tutilisateur under tperson(
  username varchar2(20),
  password varchar2(20)
);

create table agent(
  id_ag int not null,
  infos tutilisateur not null
  , CONSTRAINT agent_pk PRIMARY KEY 
    (
      ID_ag
    )
  enable
);

create table client(
id_cl int  not null,
infos tperson  not null,
num_chec varchar2(30) not null,
 CONSTRAINT client_pk PRIMARY KEY 
  (
    ID_cl 
  )
  enable
);

我已经尝试过这些,但没有奏效:

insert into agent values(1, tutilisateur( tperson( 'name', tprenom('bilel', 
'dani','lastname3'), tadr(3,'state', 'miliana', 'hammama', 20), 
'2140547854', 'email@gmail.com'), 'username', 'password'));

insert into client values(0, tperson('name', tprenom('bilel', 'dani', 
'lastname3'), tadr(3,'state2','miliana','hammama',20)),'123456789');

这是执行上面的sql时显示的错误:

错误 SQL:ORA-02315:默认构造函数的参数数量不正确

  1. 00000 - “默认构造函数的参数数量不正确”

*原因:为默认构造函数指定的参数数量与对象类型的属性数量不匹配。

*操作:为默认构造函数指定正确数量的参数并重试该操作。

我在做继承错误吗?

感谢您的答复

4

1 回答 1

0

好的,我找到了解决方案,我无法相信它是多么容易,这就是插入代理表的方法:

insert into agent 
values(1,tutilisateur('name',tprenom('bilel','dani','lastname3'),tadr(3,'ain 
delfa','miliana','hammama',20),'2140547854','email@gmail.com','username','password'));

这就是插入客户表的方法:

insert into client 
values(0,tperson('name',tprenom('bilel','dani','lastname3'),tadr(3,'ain 
delfa','miliana','hammama',20),'11225','email@gmail.com'),'123456789');
于 2018-12-06T17:52:57.567 回答