学习Oracle 的存储过程2

呵呵,继续学习吧,好记性不如懒笔头(是这么说的不?),现在用Oracle数据库的挺多的,但要想学好Oracle数据库也并不是一件太容易的事情呀,那就不断学习,不断总结吧,遇到什么问题,记下来再想办法解决它,那不就积少成多啦!

 

先说一下存储过程里的参数吧,

in  参数是常量,不能改值,不写默认为in;

out参数必须是变量,可以改值

in out参数必须为变量,可以改值;

 

如果想在一个存储过程内调用另一个存储过程或函数,可以这么写

create or replace procedure onepro

is

     v_i number :=2;  -----变量赋值

begin

      biud_test(v_i);   -----biud_test()为存储过程或函数名

end;

 

修改存储过程alter procedure 语句,但是它是用于重新编译或验证现有过程的,如果要修改过程定义,仍然用create或replace procedure命令,语法格式一样。

 

整个小例子吧

create or replace procedure update_info

(v_xm in char)

as

   XF  number;

begin

  select ZXF

  into XF

 from XS

 where XM =v_xm;

 

if XF>60 THEN

      update XS set BZ = ‘三好学生’where XM = v_xm;

end if;

 

if  XF<35 then

  update XS set BZ = '学分未修满' where XM = v_xm;

end if;

end update_info;

 

执行存储过程update_info

EXEC update_info('小二');

 

 

在整个吧!

 

创建名为select_students德存储过程,默认情况下,该过程是查询所有学生的信息,当该过程改为能检索计算机专业的学生信息时,用create or replace 重新定义。

 

(1)定义过程

create or replace procedure select_students

( cur out select.cur_07)

 

as

begin

    open cur for

           select xh,xm,zym,xb from XS

                order by XH;

end;

 

注意:使用查询包头时在select语句中不能用*标识符;

(2)修改过程

create or replace procedure select_students

(cur out select.cur_07)

as

begin

     open cur for

         select xh,xm,zym,xb, from XS

         where ZYM = '计算机'

          order by XH;

end;

 

我感觉修改已有过程就是使用create or replace procedure 重新创建一个存储过程,保持名字和原来的一样。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值