Oracle之游标使用以及优缺点

游标是数据库中用于逐行处理查询结果的机制,它在Oracle中分为带参数和不带参数的显示游标。游标提供了一种从结果集中临时存储数据并按行操作的方式。优点包括允许保存查询结果以便重复使用,提高处理效率。然而,游标也有其缺点,如使用时可能对行加锁影响并发,大数据量时效率降低,并可能导致内存问题。因此,通常建议在数据量小的情况下谨慎使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 游标(cursor)能够根据查询条件从数据表中提取一组记录,将其作为一个临时表置于数据缓冲区中,利用指针逐行对记录数据进行操作。

举例带参数的显示游标:

如下是查询Oracle Scott下的emp表中empno为7788的姓名和工资。

declare
  cursor cur_emp(p_empno number) is
    select e.ename, e.sal from scott.emp e where emp.empno = p_empno; --声明游标
  v_empno emp.empno%type := 7788;
  v_ename emp.ename%type;
  v_sal   emp.sal%type;
begin
  open cur_emp(v_empno); --打开游标
  --循环取出
  loop                    --loop循环
    fetch cur_emp
      into v_ename, v_sal; --提取记录
    exit when cur_emp%notfound;--退出循环
    dbms_output.put_line(v_ename || '的工资是' || v_sal);
  end loop;
  close cur_emp; --关闭游标
  
end;

举例不带参数的显示游标:

如下是查询Oracle Scott下的emp表中empno为7788的姓名和工资。

 

declare
  cursor cur_emp is
    select e.ename, e.sal from scott.emp e where e.empno=7788 ; --声明游标
  v_ename emp.ename%type;
  v_sal   em
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值