天天看点

oracle简单对象类型

在plsql中,面向对象的程序设计是基于对象类型来完成的。对象类型是用户自定义的一种复合数据类型,它封装了数据结构和用于操纵这些数据结构的过程和函数,在建立复杂应用程序时,通过使用对象类型可以降低应用开发难度,进而提高应用开发的效率和速度。

对象类型包括对象类型规范(object type specification)和对象类型体(object type body)两个部分。其中对象类型规范是对象与应用的接口,它用于定义对象的公用属性和方法;而对象类型体则用于实现对象类型规范所定义的公用方法,如果对象类型规范中没有定义方法,则可以不定义对象类型体。

对象类型属性用于描述对象所具有的特征,每个对象类型至少包含一个属性,至多可以包含1000个属性。对象类型的属性不能使用long、long raw、rowid、urowid、plsql的特有类型(binary_integer,Boolean,%type,%rowtype,ref cursor,record,pls_integer)等。并且在定义对象类型属性时,既不能指定对象属性的默认值,也不能指定notnull选项。

行对象是指直接基于对象类型所建立的表,列对象是指在建表时指定了对象类型列的对象表。下面给出了操作行对象的代码,列对象操作方式类似。

示例1:行对象数据操作(包含列对象数据的操作类似)

--建立对象类型

create  or  replace   type person_obj as   object(

name   varchar2(10),

gender  number(1),

birthday  date);

--建立行对象(基于person_obj)

create  table person_table of  person_obj;

--为行对象插入数据

insert  into person_table values(person_obj('jax01',1,sysdate)); --构造方法

insert  into person_table values('jax02',1,sysdate); --普通方法

--检索行对象数据

select * from person_table where  name = 'jax01';

--更新行对象数据

update person_table set birthday =  to_date('2004-05-12','YYYY-MM-DD')

where gender = 0;

继续阅读