1.在一个包中定义两个重载的方法,两个方法作用都是求一个数到另一个数的和并将和返回,方法申明如下: function getSum(endNumber int) return int; 没有指定开始值,直接求1到endNumber的和并返回 function getSum(endNumber int,beginNumber int) return int; 求beginNumber到endNumber的和并返回
1.创建包头
create package pack_sum
as
function getSum(endNumber int) return int;
function getSum1(endNumber int, beginNumber int) return int;
end pack_sum;
2.创建包的主体
create or replace package body pack_sum
as
function getSum(endNumber int) return int
as
sum_count int:=0;
begin
for var in 1..endNumber loop
sum_count:=sum_count+var;
end loop;
return sum_count;
end getSum;
function getSum1(endNumber int, beginNumber int) return int
as
sum_count int:=0;
begin
if endNumber>beginNumber then
raise_application_error(-20202,'endNumber不得大于beginNumber!');
else
for var in endNumber..beginNumber loop
sum_count:=sum_count+var;
end loop;
end if;
return sum_count;
end getSum1;
end pack_sum;
3.调用函数
declare
c int;
sum_count number:=&sum_count;
begin
c:=pack_sum.getSum(sum_count);
dbms_output.put_line('结果'||c);
end;
declare
c int;
sum_count number:=&sum_count;
sum_count1 number:=&sum_count1;
begin
c:=pack_sum.getSum1(sum_count,sum_count1);
dbms_output.put_line('结果'||c);
end;