作者:我是你的鹏鹏鹏爷 | 来源:互联网 | 2014-07-11 17:33
Oracle游标(一)显式游标显式游标是用户手动声明和操作的游标显式游标的使用步骤1.声明游标2.打开游标语法www.2cto.com3.提取游标语法4.关闭游标语法显示游标完整示例游标的属性语法整体示例:为员工添加工...SyntaxHighlighter.all();
显式游标是用户手动声明和操作的游标
显式游标的使用步骤
1.声明游标
2.打开游标
语法
www.2cto.com
3.提取游标
语法
4.关闭游标
语法
显示游标完整示例
游标的属性
语法
整体示例:
为员工添加工资:
[sql]
declare
hire_date date; --存放员工入职日期
e_id number; --存放员工id
cursor emp_cur is --定义游标
select id, hire_date from employees;
begin www.2cto.com
open emp_cur; --打开游标
loop
fetch emp_cur
into e_id, hire_date; --将数据逐条存入变量中,并且游标向后移动
exit when emp_cur%notfound;
if 100 * (2010 - to_char(hire_date, &#39;yyyy&#39;)) <1000 then
update salary
set salarvalue = salaryvalue +
100 * (2010 - to_char(hire_date, &#39;yyyy&#39;))
where emplyeeid = e_id;
else
update salary
set salarvalue = salaryvalue + 1000
where emplyeeid = e_id;
end if;
close emp_cur;
end loop;
显示游标经常和循环一起使用,简化的遍历方法如下:
示例 www.2cto.com
[sql]
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||&#39;在&#39;||emploee_record.department_name);
end loop;
end;