Oracle存储过程

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

可以有无参数程序和带参数存储过程。

无参程序语法

 

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值