这里要做一个声明,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标。要在程序中使用游标,必须首先声明游标。 声明游标 语法:CURSOR cursor_name IS select_statement;
打开游标 使用游标中的值之前应该首先打开游标,打开游标初始化查询处理。打开游标的语法是:OPEN cursor_name
关闭游标 语法:CLOSE cursor_name 从游标提取数据 从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:FETCH cursor_name INTO variable[,variable,...] 对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。
打开游标 使用游标中的值之前应该首先打开游标,打开游标初始化查询处理。打开游标的语法是:OPEN cursor_name
关闭游标 语法:CLOSE cursor_name 从游标提取数据 从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:FETCH cursor_name INTO variable[,variable,...] 对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。
create or replace procedure proc_name as
v_name varchar2(100); --定义变量
cursor c is select username from usertable ; <----游标,查询所有用户名
begin
open c; --打开游标
loop --循环
fetch c into v_name ;
exit when c%notfound; --循环结束退出循环
insert into tableB(name) values(v_name); --插入数据
end loop;
close c; --关闭游标
commit; --提交插入操作
exception --出现异常转到这里
when others then
rollback
end;