数据库对象类型
简介.对象 在数据库中的可用性 是一个非常重要的突破,
通过使用对象,用户可以在数据库中定义自己的类,所创建的自定义类就是对象类型Object type
数据库的对象类型与 Java和C#中的类相似,都可以包含属性(存储对象的状态)和方法(用于建立对象的行为模型)。
对象类型 包括: A、对象类型规范(Object TypeSpecification)
B、对象类型体(Object Type Body)
* 对象类型规范:对象与应用的接口,用于定义对象的公用属性和方法
*对象类型体:用于实现对象类型规范所定义的公用方法。
创建.
sys@SDROLUN>create type stu as object(
2 name varchar2(20),
3 sex varchar2(2),
4 birthday date,
5 note varchar2(300)
6 );
7 /
类型已创建。
create">sys@SDROLUN>createtype stus as object(
2 sid number(4),
3 student stu
4 );
5 /
类型已创建。
create">sys@SDROLUN>createtable students(
2 sid number(4) not null,
3 student stu
4 );
表已创建。
创建带有函数的对象类型
sys@>create type stu3 as object(
2 name varchar2(20),
3 sex varchar2(2),
4 birthday date,
5 note varchar2(300),
6 member function get_age return number
7 );
8 /
类型已创建。
sys@>create or replace type body stu3 as
2 memberfunction get_age return number as
3 v_months number;
4 begin
5 select floor(MONTHS_BETWEEN(sysdate,birthday)/12) into v_monthsfrom dual;
6 return v_months;
7 end;
8 end;
9 /
类型主体已创建。
在数据库表中使用对象类型. A、列对象 B、对象表
使用列对象
sys@SDROLUN>create table student4( sid number(4),student stu3);
表已创建。
sys@SDROLUN>insert into student4(sid,student)
2 values(1,stu3('王晓雪','女',to_date('19820922', 'YYYYMMDD'),'My note'));
已创建 1 行。
已用时间: 00: 00: 00.01
sys@SDROLUN>insert into student4(sid, student)
2 values(2,stu3('杨晓琪','男',to_date('19840330', 'YYYYMMDD'),'My note'));
已创建 1 行。
已用时间: 00: 00: 00.01
sys@SDROLUN>commit;
提交完成。
已用时间: 00: 00: 00.01
sys@SDROLUN>select * from student4;
SID STUDENT(NAME, SEX, BIRTHDAY, NOTE)
------------------------------------------------------------------------------------------------
1 STU3('王晓雪','女', '22-9月 -82', 'My note')
2 STU3('杨晓琪','男', '30-3月 -84', 'My note')
已用时间: 00: 00: 00.03
sys@SDROLUN>select student from student4;
STUDENT(NAME, SEX, BIRTHDAY, NOTE)
--------------------------------------------------------------------------------------
STU3('王晓雪', '女', '22-9月 -82', 'My note')
STU3('杨晓琪', '男', '30-3月 -84', 'My note')
已用时间: 00: 00: 00.01
.
.