*:用于访问对象实例的数据。如果在对象类型中需要访问特定对象实例的数据,则需要定义member方法,member方法可以使用内置参数self访问当前实例对象,当定义member方法时,无论是否定义self参数,它都会被作为第一个参数传递给member方法,但如果定义参数self,那么其类型必须要使用当前对象类型。Member方法只能有对象实例调用,而不能被对象类型调用。
示例3:带member方法的对象操作
--建立包含member方法的对象规范
createorreplacetype person_obj1 asobject(
idvarchar2(10),
namevarchar2(20),
phone varchar2(20),
address varchar2(40),
memberprocedure change_address(aaddress varchar2),
memberfunction get_info returnvarchar2
);
--建立包含member方法的对象实现
createorreplacetypebody person_obj1 is
memberprocedure change_address(aaddress varchar2)
is
begin
 address := aaddress;
end;
memberfunction get_info returnvarchar2
is
begin
 return'id:'||id||','||'name:'||name||','||'phone:'||phone||','||'address:'||address;
end;
end;
--建立包含对象类型的表
createtable person_table1(
employeeid varchar2(10),
departid varchar2(10),
person person_obj1
);
 
--测试表对象及其member函数的使用
declare
 myperson person_obj1;
begin
 myperson := zhanglei.person_obj1('1001','jax','13548752412','test1');
 myperson.change_address('深圳广东佛山东莞北京中关村。');
 dbms_output.put_line(myperson.get_info);
end;

本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/47522341/archive/2008/03/22/2206762.aspx