基于Oracle的面向对象技术基础简析
2006-08-06 12:00:35 来源:WEB开发网create table emp
(
emp_id number(5);
emp_name varchar2(20);
emp_salary number(4);
);
这样emp表的一个记录就是一个empObj对象,插入一个表的操作就可以为:
insert into emp values (empObj(10006,'marry',5000));
注意,这里表中列类型与对象的属性类型应该一一对应,另外这样存储将忽略对象的成员函数的信息。
三、对象操作与比较
可以采用DML语句对对象进行操作,其操作的语法跟一般的数据类型完全一样,比如在table1表中返回对象为empObj(10002,’mike’,3000)的记录:
select * from table1 where emp=empObj(10002,'mike',3000);
如果需要进行对象的大小比较,那么用一般的方法就很难处理,毕竟对象含有一组属性,无法进行组合比较。可以采用向对象加入map方法和order方法来解决此问题,前者是通过将对象某一属性返回代表对象的值班来比较大小,后者是通过比较两个对象之间某个属性的值班来获取对象的大小。由于两者的相似性,这里以用途更广的map成员函数为为例示范如下:
create or replace type empObj as object (
emp_id number(5),
emp_name varchar2(20),
emp_salary number(4),
--object’s function
member function addsalary(ext_salary number) return varchar2,
map member function ID return number
);
--object's body
create or replace type body empObj as member function addsalary return varchar2 is
begin
emp_salary :=emp_salary +ext_salary ;
return to_char(emp_salary);
end addsalary;
--map function's body
map member function ID return number is
begin
return emp_id;
end ID;
end;
这样定义了map函数后,对empObj对象大小的比较实质转化为对各个对象的emp_id属性大小的比较,在实际操作中,应该根据实际情况来返回关心的数据,以进行对象大小比较的操作。
四、小结
通过前面内容的介绍,大家应该对Oracle数据库的面向对象的特性有一个初步的认识,充分利用Oracle的这一特性,可以将面向对象的重用性,可扩展性等优点引入到数据库中,提高了数据库的运行性能。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接