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)

执行结果:
【Oracle11g】19_存储过程

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;
/

相关文章:

  • 2021-11-28
  • 2021-09-06
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
猜你喜欢
  • 2022-12-23
  • 2021-08-10
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案