oracle中的对象及测试

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 11:01 点击:

oracle8 发布的时候,数据库中就可以使用对象了,可以定义自己的类,也就是对象类型,和java里面的类相似,都可以包含构造函数,属性和方法。,对象类型有时候也成为用户自定义类型。以下是相关使用说明和测试:

 

/**//**//**//**
 oracle对象实例及测试
*/
---(1)测试对象
create or replace type PERSON as Object(
   name varchar2(100),
   sex char(2),
   birth date,
   pwd varchar2(32),
   member function geName return varchar2
)
create or replace type body PERSON  as
 member function geName return varchar is
 begin
 return self.birth;--self表示当前对象如同java里面的this
 end;
end ;

--(2)在plsql中使用对象
declare
tuser person;
begin
  tuser := person('joe2','01',sysdate,'123456');
  dbms_output.put_line(tuser.geName);--调用方法
end;


---(3)在对象中使用构造函数,过程和静态属性和方法
/**//*
1  构造函数使用constructor声明
2  构造函数return self as result声明结尾,
3  构造函数属性不需要定义长度 eg:varchar2
 static 不能用member声明
 sttatic 不能声明属性,只能声明function和procedure
 static 的方法和函数使用的时候直接用 对象类型.XX
*/
create or replace type testm as OBJECT(
  name varchar2(10),
  sex char(2),
  constructor function testm(--一个参数的构造函数
    p_name varchar2
  ) return self as result,
 
  constructor function testm(--二个参数的构造函数
    p_name varchar2,
    p_sex char
  ) return self as result,
  member function getSex return char,
  static function getSexByCode(code in char) return varchar2,
  member procedure getSexCN ,
  static  procedure getSexCNByCode(code in char,str out varchar2)
);
create or replace type body testm is
 constructor function testm(--一个参数的构造函数
    p_name varchar2
  ) return self as result is
 begin
    self.name:=p_name;
    return;
 end ;
   constructor function testm(--一个参数的构造函数
    p_name varchar2,
    p_sex char
  ) return self as result is
 begin
    self.name:=p_name;
    self.sex:=p_sex;
    return;
 end ;
  member function getSex return char as
  begin
     return self.sex;
   end getSex;
   member procedure getSexCN  as
    begin
      if self.sex='01' then
        dbms_output.put_line('男');
     else
        dbms_output.put_line('女');
      end if;
    end getSexCN;
    static function getSexByCode(code in char) return varchar2 as
    begin
      if code='01' then
        return '男';
     elsif code ='02' then
        return '女';
      else return '中性';
      end if;
    end getSexByCode;
    static  procedure getSexCNByCode(code in char,str out varchar2) as
    begin
    

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Table函数使用简介
      • Oracle数据库Constraint约束的常用操作及异常处理
      • Bulk Collect性能分析(zz)
      • export/import的使用
      • OCP043第十五讲 Database Security
      • ORACLE10gr2数据导入MySQL方案
      • oracle 让sys用户可以使用isqlplus
      • 在oracle数据库下使用iSQL*Plus DBA访问数据库
      • Oracle行列转换小结
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1