Oracle存储过程及返回参数 下载本文

内容发布更新时间 : 2024/6/5 19:07:52星期一 下面是文章的全部内容请认真阅读。

1、基本语法

创建存储过程,需要有CREATEPROCEDURE或CREATE ANY PROCEDURE的系统权限。该权限可由系统管理员授予。创建一个存储过程的基本语句如下: CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)] {AS|IS}

[说明部分:参数定义、变量定义、游标定义] BEGIN 可执行部分

[EXCEPTION 错误处理部分] END [过程名]; 其中:

可选关键字OR REPLACE 表示如果存储过程已经存在,则用新的存储过程覆盖,通常用于存储过程的重建。

参数部分用于定义多个参数(如果没有参数,就可以省略)。参数有三种形式:IN、OUT和IN OUT;如果没有指明参数的形式,则默认为IN。 IN 定义一个输入参数变量,用于传递参数给存储过程 OUT 定义一个输出参数变量,用于从存储过程获取数据 IN OUT 定义一个输入、输出参数变量,兼有以上两者的功能

例1,创建带输入输出参数的存储过程:

create or replace procedure test_procedure(a in number, x out varchar2)

is begin

if a >= 90 then begin x := 'A'; end; end if; if a < 90 then begin x := 'B'; end; end if; if a < 80 then begin x := 'C'; end; end if; if a < 70 then begin x := 'D'; end; end if;

if a < 60 then begin x := 'E'; end; end if;

end test_procedure; 执行结果:

例2、创建 参数为 IN OUT 的存储过程

create table EMP (EMPNO number , ENAME varchar2(32) );

insert into EMP (EMPNO ,ENAME) values (10,'张三');

insert into EMP (EMPNO ,ENAME) values (20,'小马');

insert into EMP (EMPNO ,ENAME) values (30,'小米');

insert into EMP (EMPNO ,ENAME) values (40,'小明');

CREATE OR REPLACE FUNCTION GET_EMP_NAME(P_EMPNO NUMBER DEFAULT 10)