第一种方法
declare
v_sal employees.salary%type;
--1.定义游标
cursor emp_sal_cureor is select salary from employees where department_id = 80;
begin
--2.打开游标
open emp_sal_cureor ;
-- 3.提取游标
fetch emp_sal_cureor into v_sal ;
while emp_sal_cureor %found loop
dbms_output.put_line('salary:'||v_sal);
fetch emp_sal_cureor into v_sal ;
end loop;
--4.关闭游标
close emp_sal_cureor;
en d;
第二种方法
declare
-- 声明一个记录类型
type emp_record is record(
v_sal employees.salary%type,
v_name employees.last_name%type
);
-- 声明一个记录类型的变
v_emp_record emp_record;
--1. 定义游标
cursor emp_cursors is select salary , last_name from employees where department_id=80;
begin
-- 2.-- 打开游标
open emp_cursors ;
--3.提取游标
fetch emp_cursors into v_emp_record ;
while emp_cursors %found loop
dbms_output.put_line('name:'||v_emp_record.v_name ||',salary:'||v_emp_record.v_sal);
fetch emp_cursors into v_emp_record ;
end loop;
--4.关闭游标
close emp_cursors ;
end;
第三种方法
declare
cursor emp_cureor is select last_name ,salary from employees where department_id = 80;
begin
for c in emp_cureor loop
dbms_output.put_line('name:'||c.last_name ||',salary:'||c.salary);
end loop;
end;
-- 带参数的游标
declare
--
cursor emp_sal_cursor (dept_id number ,sal number) is
select salary + 100 sal , employee_id id
from employees
where department_id = dept_id and salary >sal;
-- 定义基本数变量
temp number(4,2);
begin
-- 处理游标的循环操作
for c in emp_sal_cursor (sal=>400 ,dept_id =>80)loop
--判断员工的工资
if c.sal <= 500 then
temp := 0.05;
elsif c.sal <= 10000 then
temp := 0.03;
elsif c.sal <= 1500 then
temp := 0.02;
else
temp := 0.01;
end if ;
dbms_output.put_line(c.sal || ':' || c.id || ',' || temp);
end loop ;
end ;
declare
v_sal employees.salary%type;
--1.定义游标
cursor emp_sal_cureor is select salary from employees where department_id = 80;
begin
--2.打开游标
open emp_sal_cureor ;
-- 3.提取游标
fetch emp_sal_cureor into v_sal ;
while emp_sal_cureor %found loop
dbms_output.put_line('salary:'||v_sal);
fetch emp_sal_cureor into v_sal ;
end loop;
--4.关闭游标
close emp_sal_cureor;
en d;
第二种方法
declare
-- 声明一个记录类型
type emp_record is record(
v_sal employees.salary%type,
v_name employees.last_name%type
);
-- 声明一个记录类型的变
v_emp_record emp_record;
--1. 定义游标
cursor emp_cursors is select salary , last_name from employees where department_id=80;
begin
-- 2.-- 打开游标
open emp_cursors ;
--3.提取游标
fetch emp_cursors into v_emp_record ;
while emp_cursors %found loop
dbms_output.put_line('name:'||v_emp_record.v_name ||',salary:'||v_emp_record.v_sal);
fetch emp_cursors into v_emp_record ;
end loop;
--4.关闭游标
close emp_cursors ;
end;
第三种方法
declare
cursor emp_cureor is select last_name ,salary from employees where department_id = 80;
begin
for c in emp_cureor loop
dbms_output.put_line('name:'||c.last_name ||',salary:'||c.salary);
end loop;
end;
-- 带参数的游标
declare
--
cursor emp_sal_cursor (dept_id number ,sal number) is
select salary + 100 sal , employee_id id
from employees
where department_id = dept_id and salary >sal;
-- 定义基本数变量
temp number(4,2);
begin
-- 处理游标的循环操作
for c in emp_sal_cursor (sal=>400 ,dept_id =>80)loop
--判断员工的工资
if c.sal <= 500 then
temp := 0.05;
elsif c.sal <= 10000 then
temp := 0.03;
elsif c.sal <= 1500 then
temp := 0.02;
else
temp := 0.01;
end if ;
dbms_output.put_line(c.sal || ':' || c.id || ',' || temp);
end loop ;
end ;