显式游标是用户手动声明和操作的游标
显式游标的使用步骤
1.声明游标
2.打开游标
语法
3.提取游标
语法
4.关闭游标
语法
显示游标完整示例
游标的属性
语法
整体示例:
为员工添加工资:
declare
hire_date date; --存放员工入职日期
e_id number; --存放员工id
cursor emp_cur is --定义游标
select id, hire_date from employees;
begin
open emp_cur; --打开游标
loop
fetch emp_cur
into e_id, hire_date; --将数据逐条存入变量中,并且游标向后移动
exit when emp_cur%notfound;
if 100 * (2010 - to_char(hire_date, 'yyyy')) < 1000 then
update salary
set salarvalue = salaryvalue +
100 * (2010 - to_char(hire_date, 'yyyy'))
where emplyeeid = e_id;
else
update salary
set salarvalue = salaryvalue + 1000
where emplyeeid = e_id;
end if;
close emp_cur;
end loop;
显示游标经常和循环一起使用,简化的遍历方法如下:
示例
declare
type emplyee_record is record
(
name varchar2(50),
department_name varchar2(20)
);
cursor emp_cur is
select name,department_name from emplyees s,departments d
where e.department_id=d.department_id;
begin
for employee_record in emp_cur loop
dbms_output.put_line(employee_record.name||'在'||emploee_record.department_name);
end loop;
end;