pl/sql编程之静态游标

本文介绍了数据库游标的两种类型——隐式游标和显示游标,并详细阐述了它们的工作原理和使用步骤。通过示例代码展示了如何在PL/SQL中操作隐式游标和显示游标,包括检查游标状态、更新数据以及遍历数据集。内容涵盖了游标的声明、打开、关闭以及数据的获取方法,帮助读者理解游标在数据库交互中的重要作用。
摘要由CSDN通过智能技术生成

游标的作用:
就是用于临时存储从数据库中提取的数据块,可以理解为理解为存储数据的一个集合。

1 隐式游标

在PL/SQL程序中执行dml语句和单行查询操作(select into)时,会自动创建隐式游标,名称sql
隐式游标属性:
%found SQL语句影响了一行或多行是为TRUE
%notfound SQL语句没有影响任何行是为TRUE
%rowcount SQL语句影响的行数
%isopen 游标是否打开,始终为FALSE(隐式游标是关闭状态的)

declare
begin
    update emp set comm = 400  where deptno = 10;   
    --%found      SQL语句影响了一行或多行是为TRUE   
    if(sql%found) then
                  dbms_output.put_line('found修改成功');
    else
                  dbms_output.put_line('found修改失败');
    end if;   
    --%notfound   SQL语句没有影响任何行是为TRUE   
    if(sql%notfound) then
                  dbms_output.put_line('notfound修改失败');
    else
                  dbms_output.put_line('notfound修改成功');
    end if;   
    --%rowcount   SQL语句影响的行数   
    dbms_output.put_line('影响行数:'||sql%rowcount);
    
    --%isopen     游标是否打开,始终为FALSE(隐式游标是关闭状态的)    
    if(sql%isopen) then  
                   dbms_output.put_line('游标是打开');
    else
                   dbms_output.put_line('游标是关闭');
    end if;   
end;

2 显示游标

使用步骤:

  1. 声明游标

    	cursor 游标名 is select语句;
    
  2. 打开游标

    open 游标名;
    
  3. 取数据

    FETCH 游标名 INTO 变量名1[,变量名2...];
    或
    FETCH 游标名 INTO 记录变量;
    
  4. 关闭游标

    close 游标名;
    

3 遍历游标

使用for遍历会很简单,会自动打开关闭游标,也会自动取下一条数据
for遍历如下:

declare
  cursor v_youbiao is select * from emp;

begin

  for a in v_youbiao loop
  
    dbms_output.put_line('员工姓名:' || a.ename || '员工薪资:' || a.sal);
  
  end loop;

end;

while遍历如下:


begin
  open v_youbiao;
  
  fetch v_youbiao into v_emp;
  while (v_youbiao%found) loop  
    fetch v_youbiao into v_emp;
    --exit when v_youbiao%notfound;  --这条可以用在loop循环里面做退出条件
    dbms_output.put_line('员工姓名:' || v_emp.ename || '员工薪资:' || v_emp.sal);  
  end loop;

  close v_youbiao;

end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值