oracle 包 及 包调用

--创建包头

create package testpack --创建一个包头,里面定义变量和方法名称,方法参数,返回值类型

is                   
                v_tax number;
                v_s number;
                  Function tax(v_money number) return number;
                  function addd(v_a number,v_b number) return number;

end testpack;

--创建包体


create package body testpack --创建包体,里面具体实现包头定义的方法.注意格式
is       
          function tax(v_money number)   return number is
         begin

           if(v_money<3500) then null;
          elsif(v_money>=3500 and v_money<5000) then v_tax := (v_money-3500)*0.03-0;
          elsif(v_money>=5000 and v_money<8000) then v_tax := (v_money-3500)*0.1-105;
          elsif(v_money>=8000 and v_money<12500) then v_tax := (v_money-3500)*0.2-555;
          elsif(v_money>=12500 and v_money<38500) then v_tax := (v_money-3500)*0.25-1005;
          elsif(v_money>=38500 and v_money<58500) then v_tax := (v_money-3500)*0.3-2755;
          elsif(v_money>=58500 and v_money<83500) then v_tax := (v_money-3500)*0.35-5505;
          elsif(v_money>=83500) then v_tax := (v_money-3500)*0.45-13505;  
              
            end if;
             return v_tax ;
         end tax;
         
         
         function addd(v_a number,v_b number) return number is
           begin

             v_s := v_a+v_b;
             
             return v_s;
             end addd;
         
                      
end testpack;

---调用方法


declare
     v_tax number;
     v_s number;
    begin
      v_tax:= scott.testpack.tax(&input2);
      v_s := scott.testpack.addd(&input,&input1);
      dbms_output.put_line(v_s);
       dbms_output.put_line(v_tax);
      end;

猜你喜欢

转载自blog.csdn.net/xwnxwn/article/details/79980869