oracle 存储过程两个for循环 怎么写

如题所述

这种情况必须定义行类型的变量来解决:
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个回答  推荐于2018-04-11
oracle没有游标数组的概念。但是你可以定义动态游标,举个例子: declare bm number; zw varchar2(10); tt number; str varchar2(50); type cur_type is ref cursor; --定义游标类型本回答被网友采纳

oracle 存储过程两个for循环 怎么写
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外加子查询来解决,不建议用循环来做。

oracle存储过程循环怎么写
Oracle中有三种循环(For、While、Loop):1、loop循环:create or replace procedure pro_test_loop isi number;begini:=0;loop i:=i+1; dbms_output.put_line(i); if i>5 then exit; end if;end loop;end pro_test_loop;2、while循环:create or replace procedure pro_test_loop is...

oracle存储过程怎么写循环
1、第一步,编写存储过程的整体结构,然后定义变量,见下图。2、其次,完成上述步骤后,在定义变量后定义游标,begin,select sysdate into v_date from dual,end test_proc,如下图所示。3、接着,完成上述步骤后,写一个for循环,游标开始for循环,为临时变量名任意起个名,输出一个字段,使用变量...

Oracle存储过程游标for循环怎么写
--For 循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare --类型定义 cursor c_job is select empno,ename,job,sal from emp where job='MANAGER'; --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型 ...

Oracle存储过程游标for循环怎么写
首先编写存储过程的整体结构,如下:create or replace procedure test_proc is v_date date; --变量定义 begin select sysdate into v_date from dual;end test_proc;2 定义游标:create or replace procedure test_proc is v_date date; --定义变量 cursor cur is select * from ldcode; --...

oracle存储过程中循环for in是如何使用的
1、首先编写存储过程的整体结构,如下图所示定义变量。2、定义变量后定义游标,begin,select sysdate into v_date from dual,end test_proc。3、然后编写for循环,游标for循环开始,然后为临时变量名,任意起,输出某个字段,使用变量名.列名即可,最后游标for循环结束。4、测试运行,点击DBMS Output标签...

oracle 存储过程中的双重循环怎么写呢,在线等答案,菜鸟级别的,最好给...
先定义俩游标,数据如图,得出每个id下的两个项目 给你个例子吧,你这表我没摸清楚 declare cursor cur_1 is select distinct sid from info order by sid;cursor cur_2(v_sid number) is select sid,hobby from info where sid=v_sid and rownum<=2 order by sid;begin for r_cur1 in ...

oracle存储过程中循环for in是如何使用的
for xx in (select 语句) 这是隐式游标,这个结构中不能带参数,或者说普通的游标,隐式或显式的都不能带参数,使用参数游标或引用(动态)游标。例如:declare cursor cur(C_value number) is select col_A,col_B from tableA where col_C=C_value ;begin for xx in cur loop --处理 end...

oracle存储过程做双层循环
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 ...

oracle 存储过程 数组循环
sql一样 begin --for循环里的rec_tmp不用定义,可以自动生成的 for rec_tmp in (select t.name, t.age from student t) loop dbms_output.putline(rec_tmp.name || ' ''s age + 1 = ' || to_char(rec_tmp.age + 1) );end loop;exception when others then return;end;...

相似回答