这里创建一个求和的过程 proc_sum
create or replace procedure proc_sum
(
v1 number,
v2 number,
sum out number
)
as
begin
while(v1<=v2) loop <<my_loop>>
sum:=sum+v1;
v1:=v1+1;
end loop my_loop;
end;
/set serveroutput on--调用过程
declare
a number;
b number;
c number;
begin
a:=1;
b:=10;
proc_sum(a,b,c);
dbms_output.put_line('1到10的和为:'||c);
end;
/以上PL-SQL块,是想写一个过程求:输入的两个数字和他们之间的数的和,比如这里调用时是求(1到10的和),运行时出错,似乎形参不能被赋值,请大虾们多多指教。 假如是我思路有错,请大侠们给贴一个,学习下。 Thank you .
create or replace procedure proc_sum
(
v1 number,
v2 number,
sum out number
)
as
begin
while(v1<=v2) loop <<my_loop>>
sum:=sum+v1;
v1:=v1+1;
end loop my_loop;
end;
/set serveroutput on--调用过程
declare
a number;
b number;
c number;
begin
a:=1;
b:=10;
proc_sum(a,b,c);
dbms_output.put_line('1到10的和为:'||c);
end;
/以上PL-SQL块,是想写一个过程求:输入的两个数字和他们之间的数的和,比如这里调用时是求(1到10的和),运行时出错,似乎形参不能被赋值,请大虾们多多指教。 假如是我思路有错,请大侠们给贴一个,学习下。 Thank you .
只写不可读 即不要让sum出现的赋值语句的右边
sum:=sum+v1;是错的……
(
v1 number,
v2 number,
v_sum out number
)
as
sum number := 0;
begin
while(v1<=v2) loop <<my_loop>>
sum:=sum+v1;
v1:=v1+1;
end loop my_loop;
v_sum := sum ;
end;或者create or replace procedure proc_sum
(
v1 in number,
v2 in number,
sum inout number
)
as
begin
sum := 0;
while(v1<=v2) loop <<my_loop>>
sum:=sum+v1;
v1:=v1+1;
end loop my_loop;
end;
create or replace procedure proc_sum
(
v1 number,
v2 number,
tot out NUMBER
)
AS
i NUMBER;
BEGIN
tot:=0;
i:=v1;
WHILE(i<=v2) LOOP
tot:=tot+i;
i:=i+1;
END LOOP;
end;
/
--method two
create or replace procedure proc_sum
(
v1 number,
v2 number,
tot out NUMBER
)
as
BEGIN
tot:=0;
FOR i IN v1..v2 LOOP
tot:=tot+i;
END LOOP;
end;
/
v1 in out number,