oracle存储过程做双层循环

我的需求是这样子的:先从A表中查询得到一个结果集a,遍历结果集a的每一行从中取得一个数值作为从b表中查询的条件得到另一个结果集b,然后结果集b里每一行的数值又作为条件去做... 我的需求是这样子的:
先从A表中查询得到一个结果集a,遍历结果集a的每一行从中取得一个数值作为从b表中查询的条件得到另一个结果集b,然后结果集b里每一行的数值又作为条件去做其它操作,结果写到中间表中。

我的思路:
结果集作为一个游标,然后去遍历游标的过程中又定义另一个游标,不过这样子好像行不通,那我应该怎么做呢?
展开
 我来答
sunchongkai505
推荐于2017-11-26 · TA获得超过1005个赞
知道小有建树答主
回答量:959
采纳率:0%
帮助的人:359万
展开全部
create or replace procedure test_procedure is
  --a表游标定义
  cursor a_cursor is
    select id from a;
  --b表游标定义
  cursor b_cursor(aid number) is
    select id from b where b.id = aid;
begin
  for a_cur in a_cursor loop
    for b_cur in 厅盯b_cursor(a_cur.id) 扮悄和loop
      --这里是你要执行的操作,比如insert到c
      insert into c values (b_cur.id);
      commit;
    end loop;
  end loop;

语法是这样的,具体字段自己改一下,看你要做什么样的操作了但如果是这种插入到一张表逻辑过于简单,可以直接用等运橡值连接。

百度网友dfe5250
2014-01-21 · TA获得超过133个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:148万
展开全部
结果集a用游标得到碰氏则,然后loop循环a,循环每一行,然后得笑棚到核如结果集b,再去做你所说的“其他操作”,然后写到中间表。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
倾城的秘密丶c5928
2014-01-22 · TA获得超过233个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:216万
展开全部
create or replace procedure test_procedure is
--a表游标定义
cursor a_cursor is
select id from a;
--b表游孝腔标定义
cursor b_cursor(aid number) is
select id from b where b.id = aid;
begin
for a_cur in a_cursor loop
for b_cur in b_cursor(a_cur.id) loop
--这里滑纳是你要执行的操作巧让衫,比如insert到c
insert into c values (b_cur.id);
commit;
end loop;
end loop;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式