当前位置:七道奇文章资讯数据防范Oracle防范
日期:2011-03-21 00:21:00  来源:本站整理

基于Oracle的面向对象技术底子简析[Oracle防范]

赞助商链接



  本文“基于Oracle的面向对象技术底子简析[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
  1、概述

  对象是Oracle8i以上版本中的一个新的特点,对象实际是对一组数据和操作的封装,对象的抽象就是类.在面向对象技术中,对象触及到以下几个重要的特点:

   封装性

  通过对数据和操作的封装,将用户关心的数据和操作表暴露来作为接口,其他数据和操作则躲藏到对象内部,这样便于用户利用和保护.

   担当性

  对象具有担当性,通过这一特点可以加强程序的可扩大性,合适大型项目的开辟.

   多态性

  同一操作在运行时刻有差别的对象来引用,则其履行后果是不一样的.这一特点称之为多态性.

  恰是因为面向对象的诸多上风,Oracle公司在8.0版本今后就加入了对这一特点的全面支持,下来的部份重点报告在Oracle中的面向对象程序计划.

  2、Oracle中的面向对象程序计划

  既然对象具有这么多的长处,那么在Oracle数据库若何引用它呢?Oracle中的对象定义分两步举行:

  首先定义对象范例.定义对象范例跟定义包范例完好一样,即分为对象范例头(或称为对象标准,specification)和对象范例体(body).对象范例头包含了对象范例的属性和办法的声明,而对象范例体则包含了对象范例具体的实现.

  比方,定义一个empObj对象范例,代码以下:

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,
);
--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;
end;

  分外需求注意的是,假如对象没有成员函数部份,那么此对象范例的定义只有对象范例头部份.

  然后定义对象实例.定义了对象范例后便可以直接定义它的实例了,比方定义一个empObj实例对象,代码以下:

v_empObj1 empObj;

  经过这两步之后便可以引用对象实例的属性和办法了,引用标记为".",比方

v_empObj1.emp_id; //引用emp_id属性
v_empObj1.addsalary(300); //引用addsalary办法

  别的,在初始化无成员函数的对象时可以直接以构造函数的情势举行初始化,注意,这个时刻不需显式的定义构造函数.比方,初始化上面v_empObj1对象(假定无成员函数的情形下才能举行这种初始化操作), 代码以下:

v_empObj1 empObj:=empObj(10005,’jack’,6500);

  由于Oracle数据库是关系型数据库,其存储数据是以二维表的情势举行的,而对象是对数据和操作举行封装的一个实体,其存储信息常常是多维信息,那么对象在Oracle数据库中的存储是若何举行的呢?(这里增补一点,PL/SQL程序块中声明的对象是暂时对象,在超越其作用区域后系统将自动收回其分配的资源,但是假如需求保存对象的信息,就必须将其存储在数据库中)

  事实上,对象在Oracle数据库中的存储情势分为两种:

  1. 对象列.便可以将数据表中的列的数据范例定义为一个对象范例,这样对象便可以存储在数据列中了.比方定义一个表table1,此中emp列可以用来存储对象.

create table table1
(
id number(2);
emp empObj;
);

  2. 对象行.便可以成立一个对象表,此中每一列就表示对象中的一个属性,这样一条行记录就是一个对象了.比方定义一个emp表以下:

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));


  注意,这里表中列范例与对象的属性范例应当一一对应,别的这样存储将忽视对象的成员函数的信息.

  以上是“基于Oracle的面向对象技术底子简析[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>基于Oracle的高性能动态SQL程序开辟</b>
  • 基于Oracle的面向对象技术底子简析
  • 浅析基于Oracle案例知识库计划-体系架构
  • 基于Oracle OCI的数据拜候C语言接口ORADBI-开辟技术
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .