有下面一个关系:create or replace TYPE Person_T AS OBJECT
(
personID VARCHAR2(10),
name VARCHAR2(20)) NOT FINAL
/
create or replace TYPE Client_T UNDER Person_T
(
address VARCHAR2(50),
email VARCHAR2(20))
/
create or replace TYPE Order_T AS OBJECT
(
orderID VARCHAR2(10),
client REF Client_T)
/CREATE TABLE Person OF Person_T
( personID NOT NULL,
PRIMARY KEY (personID));CREATE TABLE OrderList OF Order_T
( orderID NOT NULL,
PRIMARY KEY (orderID));
现在往Person表插入一条数据insert into Person values(Client_T('001','CSDN','Beijing, China','[email protected]'));
现在的问题是,如何用insert into语句往OrderList表插入一条数据?望请高人指点!我曾使用如下代码插入,错误提示为: SQL Error: ORA-00932: inconsistent datatypes: expected REF BI.CLIENT_T got REF BI.PERSON_Tinsert into OrderList values('order001',
(select ref(p) from person p where p.personID = '001'));
(
personID VARCHAR2(10),
name VARCHAR2(20)) NOT FINAL
/
create or replace TYPE Client_T UNDER Person_T
(
address VARCHAR2(50),
email VARCHAR2(20))
/
create or replace TYPE Order_T AS OBJECT
(
orderID VARCHAR2(10),
client REF Client_T)
/CREATE TABLE Person OF Person_T
( personID NOT NULL,
PRIMARY KEY (personID));CREATE TABLE OrderList OF Order_T
( orderID NOT NULL,
PRIMARY KEY (orderID));
现在往Person表插入一条数据insert into Person values(Client_T('001','CSDN','Beijing, China','[email protected]'));
现在的问题是,如何用insert into语句往OrderList表插入一条数据?望请高人指点!我曾使用如下代码插入,错误提示为: SQL Error: ORA-00932: inconsistent datatypes: expected REF BI.CLIENT_T got REF BI.PERSON_Tinsert into OrderList values('order001',
(select ref(p) from person p where p.personID = '001'));
这句代码不行啊,oracle 11g还是报错,错误报告如下:Error starting at line 1 in command:
insert into OrderList select 'order001',ref(p) from person p where p.personID = '001'
Error at Command Line:1 Column:44
Error report:
SQL Error: ORA-00932: inconsistent datatypes: expected REF SYSTEM.CLIENT_T got REF SYSTEM.PERSON_T
00932. 00000 - "inconsistent datatypes: expected %s got %s"
http://topic.csdn.net/u/20070907/17/f25e8f24-c0e8-44ac-8a3b-68d5822bf305.html
insert into OrderList select 'order001',p.* from person p where p.personID = '001';
把
CREATE TABLE Person OF Person_T
( personID NOT NULL,
PRIMARY KEY (personID));
改为
CREATE TABLE Person OF Client_T
( personID NOT NULL,
PRIMARY KEY (personID));
就可以了。。