游标

 select  ….into  变量列表

只能应用在存储过程

create  procedure  p12(out  para1  char(20))

begin

 select  s1  into  para1  from  tb1;

end//

select  返回结果:表、列、行、值

游标:指针

  1、select…..into

     注意:into 关键字后的变量要求先声明;

           只能出现在存储过程和触发器,不能单独使用;

           字段(数量、类型)要和变量一致;

           只能针对一行;

练习:针对db1中的db1;

      把一个字段的内容保存到变量,显示该变量

          create procedure p12(out para1 int)

 begin

 select s1 into para1 from tb1 where s1=5;

 end//

 call  p12(@x)//

 select @x;

作业:130p-142p练习

 

游标?

  步骤:

    创建游标:declare

    打开游标;open

    获取记录;fetch

    关闭游标;close

语法:

  declare  游标名称  cursor  for

      select……from…..   where ……;-----à不能有into关键字

注意:声明完成后并不执行

      open  游标名称

      fetch  游标名称  into  变量

      close  游标名称;

练习2:针对练习1

      流程控制语句  while

     create procedure p12(out para1 int)

 begin

 declare  v  int  default  0;

 declare  c  cursor  for

select  s1  from  tb1;

open  c;

while  v<2  do

fetch  c  into  para1;

set  v=v+1;

end  while;

close  c;

 end//

  循环次数无法确定,异常提示

   语法:

     异常代码:

     SQLSTATE代码

     Error 1022  XXXXXXXXXX

     参见手册(异常对应描述)

     内置异常描述

       declare  exit   handler  for  SQLSTATE  信息  执行的动作

       declare  continue  handler  for  SQLSTATE  信息  执行的动作

    create procedure p16(out para1 int)

 begin

    declare a boolean default true;

    declare c cursor for

    select s1 from tb1;

 declare exit handler for not found

    set a=false;

 open c;

    while a do

 fetch c into para1;

    end while;

    close c;

 end//

   注意:

1、    执行顺序(声明位置无要求,建议在开头,当错误出现的时候被执行,如果是

exit类型的在终止整个存储过程的执行;如果是continue类型的出现错误的位置继续执行);

           2、构成条件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值