_实验6游标与异常处理.doc
文本预览下载声明
实验6 游标与异常处理
姓名: 学号: 专业: 班级: 同组人: 实验日期:
【实验目的与要求】
掌握Oracle游标的处理机制和方法
掌握异常处理方法
【实验内容与步骤】
游标的使用:
1.隐式游标:
(0)创建测试表和加入测试数据
drop table emp_Examloyees;
create table emp_Examloyees(
EMP_EXAMLOYEE_ID NUMBER(6) primary key,
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25),
EMAIL VARCHAR2(25),
PHONE_NUMBER VARCHAR2(20),
HIRE_DATE DATE,
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
COMMISSION_PCT NUMBER(2,2),
DEPARTMENT_ID NUMBER(4)
);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(1,JIA,JENNY,3000,1);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(2,guan,rose,4000,3);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(3,xu,mike,2000,2);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(4,zhang,billy,1000,2);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(5,jin1,dede,5000,1);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(6,jin2,dede,5000,2);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(7,jin3,dede,5000,1);
insert into emp_Examloyees(EMP_EXAMLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY,DEPARTMENT_ID) values(8,jin4,dede,5000,3);
COMMIT;
使用隐式游标:
以下程序段以sql%rowcount为例展示的是隐式游标的使用方法,请阅读并理解程序,给出测试结果。
set serveroutput on;
declare
v_delete_count number(3);
begin
delete from emp_Examloyees e where e.DEPARTMENT_ID = 1;
v_delete_count := sql%rowcount;
commit;
dbms_output.put_line(总共删除数据: || v_delete_count || 条 );
end;
/
给出运行结果:
2.显式游标:
(1)用显式游标:
--此处没有用循环,只能取出由标指针指向的第一条纪录
drop table emp_Exam;
create table emp_Exam(
id number(3),
name varchar2(20),
sal number(8,2)
);
insert into emp_Exam values(1,a,3000);
insert into emp_Exam values(2,b,3000);
insert into emp_Exam values(3,c,3000);
insert into emp_Exam values(4,d,3000);
显示全部