--创建包头
create package testpack --创建一个包头,里面定义变量和方法名称,方法参数,返回值类型
isv_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;