Oracle存储过程

来源:互联网 发布:实况足球 知乎 编辑:程序博客网 时间:2024/06/10 05:28

Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。

Oracle存储过程可以有无参数存储过程和带参数存储过程。
一、无参程序过程语法


create or replace procedure NoParPro
as   ;
begin
;
exception       //存储过程异常
      ;
end;

二、带参存储过程实例
create or replace procedure queryempname(sfindno emp.empno%type) as
           sName emp.ename%type;
           sjob emp.job%type;
begin
           ....
exception
            ....
 end;

 

三、 带参数存储过程含赋值方式

 create or replace procedure runbyparmeters   (isal in emp.sal%type,  sname out varchar,sjob in out varchar)
  as icount number;
  begin
         select count(*) into icount from emp where sal>isal and job=sjob;
         if icount=1 then
            ....
         else
             ....
          end if;
   exception
          when too_many_rows then
          DBMS_OUTPUT.PUT_LINE('返回值多于1行');
          when others then
          DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
   end;
 
  四、在Oracle中对存储过程的调用过程调用方式一
declare
           realsal emp.sal%type;
           realname varchar(40);
           realjob varchar(40);
  begin    //存储过程调用开始
           realsal:=1100;
           realname:='';
           realjob:='CLERK';
           runbyparmeters(realsal,realname,realjob);       --必须按顺序
            DBMS_OUTPUT.PUT_LINE(REALNAME||'    '||REALJOB);
   END;   //过程调用结束
 
过程调用方式二
declare
         realsal emp.sal%type;
         realname varchar(40);
         realjob varchar(40);
begin      //过程调用开始
         realsal:=1100;
         realname:='';
         realjob:='CLERK';
         runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob);   --指定值对应变量顺序可变
          DBMS_OUTPUT.PUT_LINE(REALNAME||'    '||REALJOB);
 END;   //过程调用结束
 

至此,有关ORACLE的基本存储过程以及对Oracle存储过程的调用方式介绍完毕。