*static方法:用于访问对象类型,因此不能访问self参数,只能由对象类型(obj_type)调用,而不能由实例(obj_instance)调用。在需要在对象类型上执行全局操作时使用。
示例4:带static类型方法的对象操作
--
定义对象说明
create
or
replace
type
person_obj2
as
object
(
name
varchar2
(
20
),
gender
varchar2
(
2
),
birthday
date
,
regdate
date
,
static
function
getdate
return
date
,
member
function
getinfo
return
varchar2
);
--
定义对象函数实现
create
or
replace
type
body
person_obj2
is
static
function
getdate
return
date
is
begin
return
sysdate
;
end
;
member
function
getinfo
return
varchar2
is
begin
return
'
姓名:
'
||
name
||
'
,注册日期:
'
|| regdate;
end
;
end
;
--
定义使用对象
person_obj2
的表
create
table
employee_tab2(
eno
number
(
16
),
person person_obj2,
sal
number
(
6
,
2
),
job
varchar2
(
10
)
);
--
向包含对象类型的表中插入数据
insert
into
employee_tab2
select
1234
,person_obj2(
'jax'
,
'
男
'
,to_date(
'20081212'
,
'YYYYMMDD'
),
sysdate
),
1234
,
'
赋闲
'
from
dual;
--static
类型函数与
member
类型函数的使用
declare
v_person person_obj2;
begin
select
person
into
v_person
from
employee_tab2;
dbms_output.put_line(person_obj2.getdate);
dbms_output.put_line(v_person.getinfo());
end
;