-- 使用游标的四种方法,感觉for循环的最简单
create or replace procedure exportData is
begin
declare
cursor depart is
select * from t_department;
v_id number;
v_name varchar2(500);
v_parentId number;
begin
/*用while 循环,将游标值放入变量中
之前要声明变量
open depart;
fetch depart
into v_id, v_name, v_parentId;
while depart%found loop
insert into t_depart values (v_id, v_name, v_parentId);
fetch depart
into v_id, v_name, v_parentId;
end loop;
close depart;*/
/*
for循环比较简单,比while少了很多行,不用判断指针是否到末尾了
for dep in depart
loop
insert into t_depart values(dep.id,dep.name,dep.parentId);
end loop; */
/* if…then的形式,和while相似
open depart;
fetch depart
into v_id, v_name, v_parentId;
loop
if depart%found then
insert into t_depart values (v_id, v_name, v_parentId);
fetch depart
into v_id, v_name, v_parentId;
else
exit;
end if;
end loop;
close depart;
*/
open depart;
loop
---exit when 的形式
fetch depart
into v_id, v_name, v_parentId;
exit when depart%notfound;
insert into t_depart values (v_id, v_name, v_parentId);
end loop;
close depart;
end;
end exportData;