过程中的小坑
过程out 类型为numeric 时返回数据小数位会丢失需要改为 number 类型。(问题可能是传入类型时指定不上小数位数)
v_price out numeric-->v_price out number
。
create replace procedure procedure_1
is
begin
dbms_output.put_line('procedure_1.......');
end;
create procedure procedure_2(v_i number,v_j number)
is
v_m number(5);
begin
dbms_output.put_line('procedure_2.......');
v_m := v_i + v_j;
dbms_output.put_line(v_i||' + '||v_j||' = '||v_m);
end;
create procedure procedure_3(v_i in number,v_j in number ,v_m out number)
is
begin
dbms_output.put_line('procedure_3.......');
v_m:=v_i - v_j;
dbms_output.put_line(v_i||' - '||v_j||' = '||v_m);
end;
declare
v_param1 number(5):=2;
v_param2 number(5):=8;
v_result number(5);
begin
--调用上面案例一的存储过程
procedure_1();
--调用上面案例二的存储过程
procedure_2(v_param1,v_param2);
--调用上面案例三的存储过程
procedure_3(v_param1,v_param2,v_result);
dbms_output.put_line(v_result);
end;
/*执行结果:*/
procedure_1.......
procedure_2.......
2 + 8 = 10
procedure_3.......
2 - 8 = -6
10