易网时代-编程资源站
Welcome
微信登录
首页
/
数据库
/
MySQL
/
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
更多Oracle相关信息见
Oracle
专题页面
http://www.linuxidc.com/topicnews.aspx?tid=12
MySQL优化:可配置选项的WAIT_FOR_READOracle 数据库中 drop table 与purge相关资讯 oracle数据库教程
Oracle raw数据类型介绍 (01/29/2013 10:05:53)
监听器注册与ORA-12514 错误分析 (11/13/2012 14:30:08)
Oracle SQL的cursor理解 (11/13/2012 14:16:17)
Oracle 如何强制刷新Buffer Cache (01/29/2013 10:02:46)
dblink致Oracle库的SCN变成两库的 (11/13/2012 14:24:41)
Linux操作系统下完全删除Oracle数 (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名:
匿名
字数
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图