PL/SQL 002---PL/SQL的基本能概念--2.1功能特点--2.1.3面向对象开发

2.1.3面向对象开发

面向对象的程序(OOP)设计是近几年软件开发世界非常流行的一种发展趋势,使用面向对象的思想开发应用程序,可以大大缩短建立复杂应用的时间。PL/SQL通过提供对象类型来支持面向对象的设计,对象类型是用户自定义的一种复合类型,他封装类对象的属性及操及操作这些属性数据的过程和函数。

与c++和java中的类相似,对象类型具有类的特征,如封装、抽象、继承及多态的特性。在定义好对象类型之后,可以基于对对象类型来定义对象表,或者将对象类型作为Oracle表列进行保存。

举个例子,学校里的每一个学生都可以看作是一个对象,他们有姓名、科目、成绩、绩点等,同时还可以包含计算绩点的方法,要定义这个对象,可以使用如下图所示的PL/SQL的创建方法。

create or replace type emp_obj as object
(

  name    VARCHAR2(20), --学生姓名
  subject VARCHAR2(20), -- 学生科目
  score   NUMBER(4, 1), --学生成绩
  mark    VARCHAR2(1), --成绩绩点

--计算绩点的方法
  member procedure getMarkByScore(score in number, mark out varchar2)
);
--定义对象类实体。实现对象类方法
create or replace type body emp_obj
 as
--实现对象的方法
member procedure getMarkByScore(score in number, mark out varchar2) 
is 
  begin 
    if score > 90 then mark := 'A'; 
    elsif score > 80 then mark := 'B'; 
    elsif score > 70 then mark := 'C'; 
    elsif score >= 60 then mark := 'D'; 
    else mark := 'F'; end if; 
   end; 
end;

PL/SQL的对象定义中包含了成员方法时,需要在类型体中定义成员方法的代码,因此代码中出现两个CREATE方法。当这个对象被创建之后,就可以根据这个对象创建一个对象表,代码如下所示。

CREATE TABLE emp_obj_tab OF emp_obj;

emp_obj_tab 表中的每一行都是一个对象的实例,这允许开发人员使用面向对象的方式对这个表进行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值