Oracle中创建存储过程和调用过程(一)

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表示该参数可以向该过程中传递值,也可以将某个值传出去 

猜你喜欢

转载自blog.csdn.net/wangli1281/article/details/82761145