oracle存储过程语法

时间:2021-02-13 14:01:28

存储过程 包含三部分: 声明,执行部分,异常。    
可以有无参数程序和带参数存储过程。    
无参程序语法    
1 create or replace procedure NoParPro   
2 as   ;   
3 begin   
4  ;   
5 exception   
6      ;   
7 end;   
8    
  
   带参存储过程实例    
 1 create or replace procedure queryempname(sfindno emp.empno%type) as   
 2        sName emp.ename%type;   
 3        sjob emp.job%type;   
 4 begin   
 5        ....   
 7 exception   
          ....   
14 end;   
15    
  
   带参数存储过程含赋值方式    
 1 create or replace procedure runbyparmeters  (isal in emp.sal%type,    
                            sname out varchar,sjob in out varchar)   
 2  as icount number;   
 3  begin   
 4       select count(*) into icount from emp where sal>isal and job=sjob;   
 5       if icount=1 then   
 6         ....   
 9       else  
10         ....   
12       end if;   
13  exception   
14       when too_many_rows then   
15       DBMS_OUTPUT.PUT_LINE('返回值多于1行');   
16       when others then   
17       DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');   
18  end;   
19    
  
  过程调用   
  方式一   
 1 declare   
 2        realsal emp.sal%type;   
 3        realname varchar(40);   
 4        realjob varchar(40);   
 5  begin   
 6        realsal:=1100;   
 7        realname:='';   
 8        realjob:='CLERK';   
 9        runbyparmeters(realsal,realname,realjob);     --必须按顺序   
10        DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);   
11  END;   
12    
  
  方式二   
 1 declare   
 2       realsal emp.sal%type;   
 3       realname varchar(40);   
 4       realjob varchar(40);   
 5 begin   
 6       realsal:=1100;   
 7       realname:='';   
 8       realjob:='CLERK';   
 9       runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob);  --指定值对应变量顺序可变   
10       DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);   
11 END;   
12