DECLARE
-- 声明游标,将学生信息表的学生编号及学生名称拿出
CURSOR c_code_cur IS select stu.name stuname, stu.sno as stuno from student stu;
-- 声明一个无长度的动态数组类型,每个元素VARCHAR2(256),最大可以写到VARCHAR2(4000)
type myarraytype IS TABLE OF VARCHAR2(256);
-- 声明一个装分组id的集合并初始化
c_codes myarraytype := myarraytype();
BEGIN
-- 执行游标,更新集合内容
for line in c_code_cur LOOP
dbms_output.put_line ( line.stuno );
c_codes.EXTEND; -- 动态扩展一个空间
c_codes(c_code_cur%rowcount) := line.stuno; -- 集合下标从1开始赋值
END LOOP;
-- 制作数据,区间[1,c_codes.count]
for i in 1..c_codes.count loop
insert into score(sno, score)
values(c_codes(i), 100);
end loop;
commit;
-- 异常处理
exception
when others then
rollback;
END;
Oracle代码块游标循环批量造数据
最新推荐文章于 2024-02-21 11:20:23 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)