PL/SQL通过提供对象类型来支持面向对象的设计,对象类型是用户自定义的一种复合类型,它封装了对象的属性以及操作这些属性数据的过程和函数:
eg:
CREATE OR replace type emp_obj as object(
empno number(4), -----员工编号属性
ename varchar2(10), -----员工名称属性
job varchar2(9), -----员工职位属性
sal number(7,2), -----员工薪水属性
deptno number(2), -----部门编号属性
----加薪方法
member procedure addsalary (ratio number)
);
----定义对象类星体,实现对象方法
create or replace type body emp_obj
as
--实现对象方法
member procedure addsalary (ratio number)
is
begin
sal := sal * (1 + ratio);
end;
end;
PS:当PL/SQL的对象定义中包含了成员方法时,需要在类型体重定义成员方法的代码,因此代码中会出现两个create方法,当这个对象被创建后,就可以根据这个对象创建一个对象表:
create table emp_obj_tab of emp_obj;