目录
1.语法
-- 创建存储过程的语法
CREATE [OR REPLACE] PROCEDURE
<procedure name> [(<parameter list>)]
IS|AS
<local variable declaration>
BEGIN
<executable statements>
[EXCEPTION
<exception handlers>]
END;
2.过程参数的三种模式
- IN
- 用于接受调用程序的值
- 默认的参数模式
- OUT
- 用于向调用程序返回值
- IN OUT
- 用于接受调用程序的值,并向调用程序返回更新的值。
3.实战案例
3.1 in参数使用:按要求打印行
写一个存储过程,输出:
*
**
***
****
*****
******
*******
实现代码:
create or replace procedure proc1(i in number)
as
a varchar2(100);
begin
a := '';
for j in 1..i
loop
a := a || '*';
dbms_output.put_line(a);
end loop;
end;
-- 执行存储过程 SQL*Plus
exec proc1(7)
执行结果:
3.2 out参数使用:打印值
-- 创建过程
create or replace procedure proc2(j out int)
as
begin
j := 100;
dbms_output.put_line(j);
end;
-- 执行
declare
k number;
begin
proc2(k);
end;
/
3.3 in out参数使用
create or replace procedure proc3(p1 in out number, p2 in out number)
is
v_temp number;
begin
v_temp := p1;
p1 := p2;
p2 := v_temp;
end;
-- 执行
declare
num1 number := 11;
num2 number := 22;
begin
proc3(num1 ,num2 );
dbms_output.put_line('num1:' || num1);
dbms_output.put_line('num2:' || num2);
end;
/
作者:奔跑的金鱼