所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数 来调用并执行它,从而完成一个或一系列的数据库操作。
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表示该参数可以向该过程中传递值,也可以将某个值传出去