欢迎光临
我们一直在努力

嗨 甲骨文【5】-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

对象类型

 

看此章节之前,我对jdo有一点了解,能联想起jdo是因为它将数据以对象来操作,不知这一章将带给我什么。听说原来oracle还是蛮支持jdo的,只是后来以hibernate为首的mapping模式更加流行,jdo却不尽如人意,才使之对jdo有所冷淡…不管怎样,面对复杂的商业逻辑,关系型数据库在现今是非变不可的,只是变向哪里去的问题。

 

对象组件包括属性和方法

属性是attribute的翻译。通常在高级语言里,属性通常是property的翻译,而attribute被译为特征。在oracle里,attribute和java里的property是对应的。即拥有描述对象所具有的属性。

 

方法(method)用于实现对象所执行的操作。

构造方法在9i后,允许重载了.

member方法就是高级语言里的实例方法,

member procedure fangfa1 ()

member function fangfa2() return simple_type

使用:

declare

a_shili a_lei;

begin

a_shili.fangfa1()

而static方法就是类方法,全局方法。

a_lei.staticfangfa();

map方法用于将对象实例映射为标量数值

order方法用于比较两个对象实例的大小

map和order不能同时使用。

 

对象类型

包括 对象类型规范(object type specification)和对象类型体(object type body)

就是定义和实现部分。对于熟悉delphi的人,也许会认为这样的方式才显得很得体。

建立对象类型规范的语法:

create or replace type type_name as object(

       attribute1 datatype,[,attribute2 datatype,…],

       [member|static method1 spec,

member|static method2 spec,…]);

建立对象类型体的语法:

create or replace type body type_name as

       member|static method1 body;

       member|static method2 body;

…]);

建立对象类型时,至少定义一个属性,可以不定义方法(这是不需要建立对象类型体)。

 

对象表

就象高级语言里的对象/实例,是对类的实现。

分为行对象和列对象

行对象是直接给予对象类型所建立的表

create table table_name of type_name

列对象是包含多个列的对象表

create tbale table_name{

       mynum number(6),

       mytype type_name,

       mychar varchar2(10)

);

 

ref数据类型

通过ref应用行对象,何以是不同的表共享相同的对象,从而降低了内存的占用。

 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 嗨 甲骨文【5】-数据库专栏,SQL Server
分享到: 更多 (0)