【问题标题】:How to manipulate objects with inheritance in sql (oracle)?如何在sql(oracle)中使用继承来操作对象?
【发布时间】:2018-12-05 19:53:01
【问题描述】:

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

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 - “默认构造函数的参数数量不正确”

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

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

我是不是继承错了?

感谢您的回复

【问题讨论】:

    标签: sql oracle object-relational-model


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      相关资源
      最近更新 更多