1、定义
所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过
编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数
来调用并执行它,从而完成一个或一系列的数据库操作。
2、存储过程的创建
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
(1)无参存储过程语法
create or replace procedure sample_proc
as --声明
msg varchar2(50);
begin --执行
msg:='Hello world';--为参数赋值
dbms_output.put_line('你好的英文为:'||msg);--输出参数
exception --存贮过程异常
;
end;
--有三种执行语法
--执行语法1
call sample_proc();
--执行结果
sample_proc ) 成功。
你好的英文为:Hello world
--执行语法2
exec sample_proc;
--执行结果
匿名块已完成
你好的英文为:Hello world
--执行语法3
set serveroutput on
begin
sample_proc;
end;
--执行结果
匿名块已完成
你好的英文为:Hello world
(2)带参存储过程实例
create or replace procedure count_proc(detpcode in varchar,num out number)
as
cot number(5);--声明
begin
select count(*) into cot from pat_visit_user where dept_code=detpcode;--sql语句
num:=cot;--赋值
end;
variable num varchar2(50);--用于声明变量,也可以用简写var
exec count_proc('z128',:num);--执行存储过程
--执行结果
PROCEDURE COUNT_PROC 已编译
匿名块已完成
print num;--输出变量
--执行结果
NUM
-
3
其中参数IN表示输入参数,是参数的默认模式。
OUT表示返回值参数,也就是输出参数。类型可以使用任意Oracle中的合法类型。
OUT模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程
IN OUT表示该参数可以向该过程中传递值,也可以将某个值传出去