oracle中的游标/光标_徐川江的博客_新浪博客

所谓光标就好比java中的一个集合,将查询出来的大量的记录装到一个集合里。

关于游标的一个简单运用:

set serveroutput on;

declare

cursor c1(dno number) is SELECT ename,sal from emp where deptno=dno;--定义光标

c_ename emp.ename% TYPE;

c_sal emp.sal% TYPE;

 Num number :=10;--定义了一个变量

begin

OPEN c1(num);--打开光标,并传递了一个变量

loop

  EXIT when c1%notfound;--如果游标里没有了记录就退出

  FETCH c1 into c_ename, c_sal;--赋值

dbms_output.put_line(c_ename || ';' || c_sal);

end loop;

CLOSE c1;--关闭光标

end;

查看游标的属性show parameters cursor--需要时管理员用户才能查看。

范例:给懂事长(PRESIDENT)工资加1000,总经理(MANAGER)工资加800,其它加400。

set serveroutput on;

declare

cursor c1 is SELECT ename,sal, empno, job from emp;--定义光标

c_ename emp.ename% TYPE;

c_sal emp.sal% TYPE;

c_empno emp.empno% TYPE;

c_job emp.job% TYPE;

begin

OPEN c1;--打开光标

loop

  EXIT when c1%notfound;

  FETCH c1 into c_ename, c_sal, c_empno, c_job;

if c_job='PRESIDENT' then

  c_sal:=c_sal+1000;

ELSIF c_job='MANAGER' then

  c_sal:= c_sal+800;

else

  c_sal:= c_sal+400;

end if;

dbms_output.put_line(c_ename || ';' || c_sal || ',' || c_empno || ',' || c_job);

end loop;

CLOSE c1;--关闭光标

end;


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值