2016-01-27 67 views
0

我作业的一部分。我知道这很基本,但对我来说并不那么直观。 我创建这个:基本对象:ORA-00932当INSERT对象类型数据时

CREATE TYPE Address_typ AS OBJECT (
     AddressNo NUMBER, 
     Street VARCHAR2(64), 
     PostCode VARCHAR2(9), 
     Town  VARCHAR2(64) 
    ); 
    /

    CREATE TYPE Customer_typ AS OBJECT (
     CustNo   NUMBER, 
     customer_name VARCHAR2(64), 
     VAT_NO   VARCHAR2(18), 
     Address_ref REF Address_typ 
    ); 
    /

CREATE TABLE Address_table OF Address_typ; 

CREATE TABLE Customer_table OF Customer_typ 
(Address_ref SCOPE IS Address_table); 

此插入的工作原理:

INSERT INTO Address_table VALUES(Address_typ(1,'Strumykowa 5','65-001', 'Zielona Góra')); 

和一个下面是不是(空Address_table):

INSERT INTO Customer_table VALUES(Customer_Typ(1,'PPUH ZZPD', '12345678901', Address_typ(1,'Strumykowa 5','65-001', 'Zielona Góra'))); 

我应该如何正确插入到CUSTOMER_TABLE

+0

Customer_typ应该是相对的吗?......我想没有必要。 – mallorn

回答

2

这种方式将工作:

INSERT INTO Customer_table 
VALUES(Customer_Typ(1,'PPUH ZZPD', '12345678901', (select ref(a) from address_table a where a.AddressNo = 1))); 
+0

谢谢,奇怪的是我没有弄清楚自己。 – mallorn