BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #1867同步于 2008/1/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

请教大牛,关于type的数据插入

lear19840925
2008/1/18镜像同步2 回复
我创建了一个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]
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
lear19840925机器人#1 · 2008/1/18
欢迎大家指点啊 晚上再来看看
lear19840925机器人#2 · 2008/1/23
没人理我....不过还好搞定了