WEB开发网
开发学院数据库Oracle Oracle中的面向对象OOP 阅读

Oracle中的面向对象OOP

 2008-12-08 13:02:00 来源:WEB开发网   
核心提示: 4、嵌套表嵌套表是表中之表,一个嵌套表是某些行的集合,Oracle中的面向对象OOP(3),它在主表中表示为其中的一列,对主表中的每一条记录,有关Oracle中面向对象的内容就简要叙述这么多了,虽然现在很少使用到,嵌套表可以包含多个行,1定义嵌套表方法:2createorreplacety

4、嵌套表

嵌套表是表中之表,一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。

1 定义嵌套表方法:
2createorreplacetypeADDRESS_TABLEastableof ADDRESS;
3 
4 基本对象类型、创建表、查询和插入数据都跟上面可变数组一样
5 
6嵌套表更新(table转化为表再利用表别名操作列进行更新)
7updatetable(selectS.STUADDSfromSTUDENTSwhere
 8  S.STUNAME =  ' improviser ' )AD set AD.PROVINCE =  ' 北京 '  where city =  ' 广州 ' ;
9
10 删除嵌套表记录
11 delete  from  table ( select S.STUADDS from STUDENTS
12  where S.STUNAME =  ' improviser ' )AD where AD.city =  ' 潮州 市' ;
13

比较:可变数组,查询速度快,但是更新困难得整体更新,适用与数据不修改情况,如医生处方。使用嵌套表可以对表中的表内容进行修改而无需进行整体更新操作。

4、对象表

1 首先创建对象类型
2createorreplacetypeOFFICETYPEas object
3 (
4  idvarchar(10 ),
5  typenamevarchar(20 )
6 );
7 
8 将对象类型转化为对象表
9createtableofficeof officetype;
10 
11 创建对象关系表(使用ref,指示OID进行对象表关联)
12createtable worker
13 (
14  workeridvarchar(10)primarykey ,
15  workernamevarchar(20 ),
16  workerofficerefofficetpeyscopeis office,
17  phonevarchar(20 )
18 );
19 
20 使用deref取得关联对象表相关内容
21selectworkerid,workername,deref(w.workeroffice),phonefrom workerw
  where workerid =  ' C001 ' ;
22 结果为
23C001 张小明 OFFICETYPE('0001','财务科')   010-12345
24 
25 使用VALUE(别名)查询对象内容
26selectvalue(o)from officeo;
27 

5、对象视图

1 创建对象视图(通过OID连接dept)
2createviewdeptviewofdeptypewithobjectoid(deptno)asselect*from dept;
3createviewemp_viewasselect make_ref(deptview,deptno)deptoid,empno,ename
4  from emp;

好了,有关Oracle中面向对象的内容就简要叙述这么多了,虽然现在很少使用到,但在以后有用到之处有一定的参考作用。

上一页  1 2 3 

Tags:Oracle 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接