oracle光标使用,Oracle中光标的使用和异常

Oracle中光标的使用和异常

1.没有参数的光标的使用

SQL> declare

2 cursor cl is select * from emp;

3 emp_row emp%rowtype;

4 begin

5 open cl;

6 loop

7 fetch cl into emp_row;

8 exit when cl%notfound;

9 dbms_output.put_line('员工的名称'|| emp_row.ename || '员工的部门'|| emp_row.deptno);

10 end loop;

11 close cl;

12 end;

13 /

员工的名称SMITH员工的部门20

员工的名称ALLEN员工的部门30

员工的名称WARD员工的部门30

员工的名称JONES员工的部门20

员工的名称MARTIN员工的部门30

员工的名称BLAKE员工的部门30

员工的名称CLARK员工的部门10

员工的名称SCOTT员工的部门20

员工的名称KING员工的部门10

员工的名称TURNER员工的部门30

员工的名称ADAMS员工的部门20

员工的名称JAMES员工的部门30

员工的名称FORD员工的部门20

员工的名称MILLER员工的部门10

PL/SQL procedure successfully completed

SQL> declare

2 cursor cl(emp_name varchar2) is select * from emp where ename=emp_name;

3 emp_row emp%rowtype;

4 begin

5 open cl('SMITH');

6 fetch cl into emp_row;

7 dbms_output.put_line('员工的名称'||emp_row.ename||'员工的工作'|| emp_row.job);

8 close cl;

9 end;

10 /

员工的名称SMITH员工的工作CLERK

部门编号为10的员工

SQL> declare

2 cursor cl(emp_deptno number) is select * from emp where deptno=emp_deptno;

3 emp_row emp%rowtype;

4 begin

5 open cl(10);

6 loop

7 fetch cl into emp_row;

8 exit when cl%notfound;

9 dbms_output.put_line( '员工的名称:'||emp_row.ename);

10 end loop;

11 close cl;

12 end;

13 /

员工的名称:CLARK

员工的名称:KING

员工的名称:MILLER

PL/SQL procedure successfully completed

除0的异常

SQL> declare

2 pnum number:=10;

3 begin

4 pnum:=pnum/0;

5 exception

6 when zero_divide then

7 dbms_output.put_line('除数不能为0');

8 end;

9 /

除数不能为0

PL/SQL procedure successfully completed

自定义的例外

SQL> declare

2 cursor cl(emp_no number) is select * from emp where empno=emp_no;

3 emprow emp%rowtype;

4 no_found exception;

5 begin

6 open cl(1000);

7 fetch cl into emprow;

8 if cl%notfound then raise no_found;

9 end if;

10 close cl;

11 exception

12 when no_found then

13 dbms_output.put_line('自己定义的意外');

14 end;

15 /

自己定义的意外

PL/SQL procedure successfully completed

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值