对象表:
表中的每一行代表一个对象
*包含对象标识符(OID);
*REF操作符用于引用行对象,找出表中每条记录的oid的值
*DREF操作符返回行对象的值
____________________
创建一个对象表:
1.首先创建一个对象类型:
create or replace Type MingXiType as Object
(
GoodsId varchar(15),
IntCount int,
Provider varchar(13)
) not final;
2.根据基类型,来创建一个对象表
create table ObjectTable1 of MingXiType;
3.向对象表中插入数据
insert into ObjectTable1 values ('3001', 100, 's001');
insert into ObjectTable1 values ('3002', 300, 'hoo2');
4.对象里记录的OID:
select ref(a) from ObjectTable1 a ; --ref(对象表的别名)
5.Scope is Office(表名):范围仅限于office这张表
---------------------------------------------------
eg:create or replace type OfficeType as Object
(
Id varchar(10),
TypeName varchar(10)
);
create table office of officetype ; --对象表
insert into OfficeType values ( '0001' , '财务科');
insert into OfficeType values ( '0002' , '人事科');
insert into OfficeType values ( '0003' , '伙食科');
insert into OfficeType values ( '0004' , '后勤科');
create table Worker --员工表
(
WorkerID varchar(10) primary key,
WorkerName varchar(10),
(科室字段)WorkerOffice ref OfficeType Scope is Office, --用对象表定义了外键(Office)
Phone varchar(16)
);
--这个科室字段,引用OfficeType(科室类型)
--科室类型OfficeType的对象是Office(科室的实例)
--也就是说它受限于office这张表
--员工表就关联上了科室表(office),也就定义了外键,这是通过对象表定义的外键
-----------------------------------------------------
向员工表中插入数据:
insert into Worker select 'c001' , '张小明' , Ref(o) , '010-1234567'
from Office o
where ID = '0001';
----------------------------------------------------
value() 函数是用来显示对象的
select value(o) from Office o;