oracle中的对象及测试 (二)

2014-11-24 08:50:59 · 作者: · 浏览: 3
BJ(
birth date,
overriding member function geName return varchar2--重写父类的方法
)
create or replace type body SUB_OBJ2 is
member function geName return varchar2 as
begin
return '我的名字是:'||self.name;
end;
end;
--测试
declare
obj SUB_OBJ2;
begin
obj := SUB_OBJ2('joe2','01',sysdate);
dbms_output.put_line(obj.geName);--调用继承的方法,和继承的属性
end;
--(6)使用对象定义表中的列----------
create table test00(
tuser person,
remark varchar2(100)
)

--insert into test00 values(person('joe','01',sysdate,'123456'),/*参数个数必须够*/'remarkcontent');
--select t.tuser.name from test00 t;--必须使用表别名
--delete from test00 t where t.tuser.name='joe';
----------------------------------------------
--(7)使用对象定义整个表
create table testoo1 of person;
--insert into testoo1 values(person('joe2','01',sysdate,'123456'));
--select t.* from testoo1 t;
--delete from testoo1 where name='joe';
------------------------------------------------
--(8)对象引用,每一列都是目标表中的列的引用
create table testoo2(
id number primary key,
tuesr ref person scope is testoo1
)
--insert into testoo2 values(1,(select ref(oo1) from testoo1 oo1 where oo1.name='joe'));
--update testoo2 o2 set o2.tuesr=(select ref(oo1) from testoo1 oo1 where oo1.name='joe2') where o2.id=1
-------------------------------------------------