oracle 存储过程两个for循环 怎么写
答案:3 悬赏:40 手机版
解决时间 2021-03-01 01:51
- 提问者网友:蓝莓格格巫
- 2021-02-28 17:07
oracle 存储过程两个for循环 怎么写
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-02-28 17:28
这种情况必须定义行类型的变量来解决:
declare
row_data tb_student%ROWTYPE
for row_data in tb_student loop
update student st set st.class_name = row_data.class_name
where st.class_id = row_data.class_id
end loop;
但这样种循环更新效率确实很低,SQL是面向集合的运算,像你这种需求可以用一条更新SQL外加子查询来解决,不建议用循环来做。
declare
row_data tb_student%ROWTYPE
for row_data in tb_student loop
update student st set st.class_name = row_data.class_name
where st.class_id = row_data.class_id
end loop;
但这样种循环更新效率确实很低,SQL是面向集合的运算,像你这种需求可以用一条更新SQL外加子查询来解决,不建议用循环来做。
全部回答
- 1楼网友:玩世
- 2021-02-28 18:30
oracle没有游标数组的概念。但是你可以定义动态游标,举个例子: declare bm number; zw varchar2(10); tt number; str varchar2(50); type cur_type is ref cursor; --定义游标类型
- 2楼网友:何以畏孤独
- 2021-02-28 18:01
你把loop
end loop;的层级写好,然后别少掉东西就可以了。
你每个循环的结果写好都会在这里显示,要是没有很可能就是少东西了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯