将关系表中的数据插入对象关系表

时间:2016-01-28 17:50:22

标签: oracle

我尝试使用命令"插入select ..."但它没有用。如何将数据从Rel.tables加载到O-Rel.tables?

表类别的示例:

插入CATEGORIES_NEW 从类别中选择*;

- 上述方法有效,但类似的方式对其他表格无效。

以下是所有表格:

关系表

    CREATE TABLE Customers (
    CUSTOMERID NUMBER NOT NULL,
    FIRSTNAME VARCHAR2 (20) NOT NULL,
    LASTNAME VARCHAR2 (20) NOT NULL,
    ADDRESS1 VARCHAR2 (40) NOT NULL,
    ADDRESS2 VARCHAR2 (40),
    CITY VARCHAR2 (20) NOT NULL,
    STATE VARCHAR2 (20) NOT NULL,
    ZIP VARCHAR2 (20) NOT NULL,
    COUNTRY VARCHAR2 (20) NOT NULL,
    REGION VARCHAR2 (20) NOT NULL,
    EMAIL VARCHAR2 (20) NOT NULL,
    PHONE VARCHAR2 (20) NOT NULL,
    CREDITCARDTYPE VARCHAR2 (20) NOT NULL,
    CREDITCARD VARCHAR2 (20) NOT NULL,
    CREDITCARDEXPIRATION VARCHAR (10) NOT NULL,
    USERNAME VARCHAR2 (20) NOT NULL,
    "PASSWORD" VARCHAR2 (20) NOT NULL,
    AGE NUMBER NOT NULL,
    INCOME NUMBER NOT NULL,
    GENDER VARCHAR2 (8) NOT NULL,
    PRIMARY KEY (CUSTOMERID));

    CREATE TABLE Orders (
    ORDERID NUMBER NOT NULL,
    ORDERDATE DATE NOT NULL,
    CUSTOMERID NUMBER NOT NULL REFERENCES Customers,
    NETAMOUNT NUMBER NOT NULL,
    TAX NUMBER NOT NULL,
    TOTALAMOUNT NUMBER NOT NULL,
    PRIMARY KEY (ORDERID));

    CREATE TABLE Categories (
    "CATEGORY" NUMBER NOT NULL,
    CATEGORYNAME VARCHAR (20) NOT NULL,
    PRIMARY KEY ("CATEGORY"));

    CREATE TABLE Products (
    PROD_ID NUMBER NOT NULL ,
    "CATEGORY" NUMBER NOT NULL REFERENCES Categories,
    TITLE VARCHAR (40) NOT NULL,
    ACTOR VARCHAR (40) NOT NULL,
    PRICE VARCHAR (40) NOT NULL,
    PRIMARY KEY (PROD_ID));

    CREATE TABLE Orderlines (
    ORDERLINEID NUMBER NOT NULL,
    ORDERID NUMBER NOT NULL REFERENCES Orders,
    PROD_ID NUMBER NOT NULL REFERENCES Products,
    QUANTITY NUMBER NOT NULL,
    ORDERDATE VARCHAR2 (80) NOT NULL,
    PRIMARY KEY (ORDERLINEID,ORDERID));

Object-Relational Tables



CREATE TYPE Customer_obj AS OBJECT (
   CUSTOMERID NUMBER, 
   CUST_NAME NAME,
   CUST_ADDRESS ADDRESS_TYPE,
   CUST_CONTACT CONTACT_INFO,
   CUST_CREDITCARD CREDITCARD_INFO,
   CUST_PERSONALINFO PERSONAL_INFO  
);

CREATE TYPE NAME AS OBJECT (
     FIRSTNAME VARCHAR2(80) , 
     LASTNAME VARCHAR2(80) 
  );


CREATE TYPE ADDRESS_TYPE AS OBJECT (
    ADDRESS VARCHAR2(280) , 
    CITY VARCHAR2(80) , 
    STATE VARCHAR2(20), 
    ZIP VARCHAR2(40) ,
  COUNTRY VARCHAR2(40) ,
  REGION VARCHAR2(40)
  );


CREATE TYPE CONTACT_INFO AS OBJECT (
  EMAIL VARCHAR2(40),
    PHONE VARCHAR2(40) 
  );



CREATE TYPE CREDITCARD_INFO AS OBJECT (
 CREDITCARDTYPE VARCHAR2(40) , 
 CREDITCARD VARCHAR2(40) ,
 CREDITCARDEXPIRATION VARCHAR2(40) 
  );


CREATE TYPE PERSONAL_INFO AS OBJECT (    
     USERNAME VARCHAR2(80) ,
     PASSWORD VARCHAR2(80) ,
     AGE NUMBER ,
     INCOME NUMBER ,
     GENDER VARCHAR(20)
  );




CREATE TABLE CUSTOMERS_NEW OF Customer_obj(
PRIMARY KEY (CUSTOMERID));



CREATE TYPE Categories_obj AS Object(
    CATEGORY NUMBER ,
    CATEGORYNAME VARCHAR2(80) );

CREATE TABLE CATEGORIES_NEW OF Categories_obj(
  PRIMARY KEY (CATEGORY));


CREATE TYPE Orders_obj AS Object(
  ORDERID NUMBER , 
    ORDERDATE VARCHAR2(400), 
  CUSTOMERID NUMBER,
    NETAMOUNT NUMBER ,
  TAX NUMBER,
  TOTALAMOUNT NUMBER
    );

CREATE TABLE ORDERS_NEW OF Orders_obj(
  PRIMARY KEY (ORDERID),
  FOREIGN KEY(CUSTOMERID) REFERENCES CUSTOMERS_NEW 
  );

CREATE TYPE Products_obj AS Object(
  PROD_ID NUMBER ,
  CATEGORY NUMBER ,
  TITLE VARCHAR2 (40) ,
  ACTOR VARCHAR2 (40) ,
  PRICE VARCHAR2 (40)
  );

CREATE TABLE PRODUCTS_NEW OF Products_obj(
  PRIMARY KEY (PROD_ID),
  FOREIGN KEY (CATEGORY) REFERENCES CATEGORIES_NEW 
  );

CREATE TYPE Orderlines_obj AS Object(
  CUST_ID_INFO ID_INFO,
  QUANTITY NUMBER,
  ORDERDATE VARCHAR2 (80)
  );


CREATE TYPE ID_INFO AS Object (
  ORDERLINEID NUMBER ,
  ORDERID NUMBER ,
  PROD_ID NUMBER 
  );


CREATE TABLE ORDERLINES_NEW OF Orderlines_obj(
PRIMARY KEY (CUST_ID_INFO.ORDERLINEID,CUST_ID_INFO.ORDERID),
FOREIGN KEY (CUST_ID_INFO.ORDERID) REFERENCES ORDERS_NEW,
FOREIGN KEY (CUST_ID_INFO.PROD_ID) REFERENCES PRODUCTS_NEW
);

0 个答案:

没有答案