create [or replace] procedure procedure_name is
variable declaration;
begin
statement;
[exception]
statement;
end;
存储过程的执行:
使用命令exec procedure_name, 直接在PL/SQL中调用
create or replace procedure p
is
v_temp number(6):=123;
begin
dbms_output.put_line('middle');
dbms_output.put_line(v_temp);
end;
执行:exec p; //在命令行模式下
或者:
begin
p;
end;
存储过程的删除:drop procedure procedure_name
存储过程的传参:
in, 默认模式,表参数从调用过程中直接传到过程中
out, 传出模式,表示这个参数是由过程传出到调用的环境
in out, 传人传出模式,过程与调用环境可相互使用
例子:
create or replace procedure p
(v_a in number, v_b number, v_ret out number,
v_temp in out number )
is
begin
if (v_a > v_b) then
v_ret := v_a;
else
v_ret := v_b;
end if;
v_temp := v_temp + 1;
end;
调用这个存储过程:
declare
v_a number := 3;
v_b number := 4;
v_ret number;
v_temp number := 5;
begin
p(v_a, v_b, v_ret, v_temp);
dbms_output.put_line(v_ret);
dbms_output.put_line(v_temp);
end;