-- 声明游标;CURSOR cursor_name IS select_statement
-- For 循环游标
-- (1)定义游标
-- (2)定义游标变量
-- (3)使用for循环来使用这个游标
declare
-- 类型定义
cursor c_job
is
select empno,ename,job,sal
from emp
where job= ' MANAGER ' ;
-- 定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_job% rowtype;
begin
for c_row in c_job loop
dbms_output.put_line(c_row.empno|| ' - ' || c_row.ename|| ' - ' || c_row.job|| ' - ' || c_row.sal);
end loop;
end ;
-- Fetch游标
-- 使用的时候必须要明确的打开和关闭
declare
-- 类型定义
cursor c_job
is
select empno,ename,job,sal
from emp
where job= ' MANAGER ' ;
-- 定义一个游标变量
c_row c_job% rowtype;
begin
open c_job;
loop
-- 提取一行数据到c_row
fetch c_job into c_row;
-- 判读是否提取到值,没取到值就退出
-- 取到值c_job%notfound 是false
-- 取不到值c_job%notfound 是true
exit when c_job% notfound;
dbms_output.put_line(c_row.empno|| ' - ' || c_row.ename|| ' - ' || c_row.job|| ' - ' || c_row.sal);
end loop;
-- 关闭游标
close c_job;
end ;