返回信息流我创建了一个owner的type 然后由这个type派生了2个type,分别是dept_typ、employee_typ,然后这2个typ都创建了对应的对象表,最后有一个mechine表,它的某个字段是owner的ref,请教如何往mechine表里插数据
ps:dept_typ、employee_typ的对象表中都有数据了
下面是几个表的建表语句
==================================
DROP FUNCTION SYSDAY;
DROP TABLE TODAY;
DROP TABLE Installation_tab;
DROP TABLE Machine_tab;
DROP TABLE Package_tab;
DROP TABLE Depart_tab;
DROP TABLE Employee_tab;
DROP TABLE Computer_tab;
DROP TYPE Installation_typ;
DROP TYPE PC_typ;
DROP TYPE Server_typ;
DROP TYPE Machine_typ;
DROP TYPE Package_typ;
DROP TYPE Employee_typ;
DROP TYPE Depart_typ;
DROP TYPE Owner_typ;
DROP TYPE Computer_typ;
/* CREATE THE JAZY ASSOCIATES TYPES */
CREATE OR REPLACE TYPE Computer_typ AS OBJECT (
compid VARCHAR2(4) ,
mfgname VARCHAR2(8) ,
mfgmodel VARCHAR2(8) ,
memory NUMBER(5) ,
sysdisk NUMBER(10));
/
CREATE OR REPLACE TYPE Owner_typ AS OBJECT (
budget DECIMAL(9,2),
balance DECIMAL(9,2)) NOT INSTANTIABLE NOT FINAL;
/
CREATE OR REPLACE TYPE Employee_typ UNDER Owner_typ (
empnum NUMBER(4) ,
empname VARCHAR2(20) ,
empphone NUMBER(4));
/
CREATE OR REPLACE TYPE Depart_typ UNDER Owner_typ (
deptno NUMBER(3) ,
deptname VARCHAR2(15) );
/
CREATE OR REPLACE TYPE Package_typ AS OBJECT (
packid VARCHAR2(4) ,
packname VARCHAR2(20) ,
packver NUMBER(3,2),
packtype VARCHAR2(8),
packcost NUMBER(5,2),
upgradecost NUMBER(5,2),
memory NUMBER(5),
sysdisk NUMBER(8));
/
CREATE OR REPLACE TYPE Machine_typ AS OBJECT (
tagnum NUMBER(5) ,
memory NUMBER(5) ,
sysdisk NUMBER(10) ,
comp_ref REF Computer_typ ,
owner_ref REF Owner_typ
) NOT INSTANTIABLE NOT FINAL;
/
CREATE OR REPLACE TYPE Server_typ UNDER Machine_typ (
ipaddr NUMBER(16));
/
CREATE OR REPLACE TYPE PC_typ UNDER Machine_typ (
user_ref REF Employee_typ);
/
CREATE OR REPLACE TYPE Installation_typ AS OBJECT (
instdate DATE,
instcost NUMBER(5,2),
pack_ref REF Package_typ,
mach_ref REF Machine_typ);
/
/* CREATE THE JAZY ASSOCIATES TABLES */
CREATE TABLE Computer_tab OF Computer_typ;
ALTER TABLE Computer_tab ADD CONSTRAINT PK_Computer PRIMARY KEY(compid);
CREATE TABLE Employee_tab OF Employee_typ (
empnum CONSTRAINT PK_Employee PRIMARY KEY NOT NULL,
empname NOT NULL);
CREATE TABLE Depart_tab OF Depart_typ (
deptno CONSTRAINT PK_DEPART PRIMARY KEY NOT NULL,
deptname NOT NULL);
CREATE TABLE Package_tab OF Package_typ (
packid CONSTRAINT PK_PACKAGE PRIMARY KEY NOT NULL,
packname NOT NULL,
packtype CONSTRAINT CK_PACKAGE_packTABLE CHECK(packtype IN ('Acc', 'WP', 'SS', 'DB', 'WS', 'IDE', 'OS', 'WF','Email')),
CONSTRAINT CK_PACKAGE_upgrade CHECK(upgradecost < packcost*0.1) );
CREATE TABLE Machine_tab OF Machine_typ (
tagnum NOT NULL,
comp_ref NOT NULL SCOPE IS Computer_tab,
owner_ref NOT NULL,
memory NOT NULL,
sysdisk CONSTRAINT CK_MACHINE_sysdisk CHECK(sysdisk > 0) NOT NULL);
ALTER TABLE Machine_tab ADD CONSTRAINT PK_MACHINE PRIMARY KEY (tagnum);
CREATE TABLE Installation_tab OF Installation_typ(
mach_ref NOT NULL SCOPE IS Machine_tab,
pack_ref NOT NULL SCOPE IS Package_tab);
CREATE TABLE TODAY AS
SELECT SYSDATE AS today FROM DUAL;
CREATE FUNCTION SYSDAY RETURN DATE AS
today DATE;
BEGIN
SELECT today
INTO today
FROM TODAY;
RETURN today;
END;
/
====================
下面是几个基本表的数据:
==========================
INSERT INTO PACKAGE_TAB ( PACKID, PACKNAME, PACKVER, PACKTYPE, PACKCOST, UPGRADECOST, MEMORY,
SYSDISK ) VALUES (
'vi', 'vi', 1.1, 'WP', 90, 5, 10, 300);
commit;
INSERT INTO COMPUTER_TAB ( COMPID, MFGNAME, MFGMODEL, MEMORY,
SYSDISK ) VALUES (
'1', 'IBM', 'EBrain', 64, 100);
commit;
INSERT INTO DEPART_TAB ( BUDGET, BALANCE, DEPTNO, DEPTNAME ) VALUES (
500, 100, 1, 'sales');
commit;
INSERT INTO EMPLOYEE_TAB ( BUDGET, BALANCE, EMPNUM, EMPNAME,
EMPPHONE ) VALUES (
500, 100, 1, 'Jeff Ziff', 8888);
commit;
[em1]
这是一条镜像帖。来源:北邮人论坛 / database / #1867同步于 2008/1/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
请教大牛,关于type的数据插入
lear19840925
2008/1/18镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。