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
更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12
评论暂时关闭