黑马程序员-浅谈个人理解,oracle procedure-存储过程、Function-函数、 package-包

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

  1.   oracle procedure-存储过程

      示列:

create or replace procedure update_sal(name varchar2,newsal number)
IS
begin
  update emp set sal = newsal where lower(ename)=lower(name);
end;
/

个人理解:

 存储过程在java或者C#语言中就是一个没有范围值得方法。(void)

  public void update_sal(string name,double newsal){

     //do what your want 做写要做的事.

  }

2.Function-函数

示列:

create or replace function annual_income(name varchar2) return number  
IS
 annual_salary number(7,2);
 begin
   select sal*12+nvl(comm,0) into annual_salary from emp where lower(ename)=lower(name);
   return annual_salary;
 end;
/

个人理解:

  函数在java或者C#语言中就是一个有范围值得方法。(返回类型)

 

  public double  annual_income(string name){

     //do what your want 做写要做的事.

    return ....;

  }

 

3.package-包

 示列:

create package emp_pkg is
function annual_income(name varchar2) return number;
procedure update_sal(name varchar2,newsal number);
end;
/

个人理解:

   包体得定义部分,就是java或C#中的接口。之定义接口方法,不实现


create package body emp_pkg is
  procedure update_sal(name varchar2,newsal number)
    is
    begin
       update emp set sal = newsal where lower(ename)=lower(name);
    end;
  function annual_income(name varchar2) return number is
    annual_salary number(7,2);
   begin
     select sal*12+nvl(comm,0) into annual_salary from emp where lower(ename)=lower(name);
     return annual_salary;
   end;
 end;
 包体部分是接口的实现。

 这样我们就可以通过  emp_pkg.update_sal或者emp_pkg.annual_income 来调用一个业务逻辑里面的方法,也体现了封装的特性。(包名.存储过程||函数)。

 

以上纯属个人理解,方便学习,如果有不妥之处,还望大师指点。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值