oracle存储过程中循环for in是如何使用的
1、FOR循环用法,以下是SQL源码:DECLARE x number; --声明变量BEGIN x := 1; --给初值 FOR x IN REVERSE 1 .. 10 LOOP --reverse由大到小 DBMS_OUTPUT.PUT_LINE('x=' || x); END LOOP; DBMS_OUTPUT.PUT_LINE('end loop x=' || x); --x=1END。
2、输出结果如图。
3、GOTO用法,以下是SQL源码:DECLARE x number;BEGIN x := 0; <<repeat_loop>> --循环点 x := x + 1; DBMS_OUTPUT.PUT_LINE(X); IF x < 9 THEN --当x的值小于9时,就goto到repeat_loop GOTO repeat_loop; END IF;END。
4、WHILE循环用法,以下是SQL源码:DECLARE x number;BEGIN x := 0; WHILE x < 9 LOOP x := x + 1; DBMS_OUTPUT.PUT_LINE('x=' || x); END LOOP; DBMS_OUTPUT.PUT_LINE('end loop x=' || x);END。
5,输出对应结果。
6、LOOP循环用法,以下是SQL源码:DECLARE x number;BEGIN x := 0; LOOP x := x + 1; EXIT WHEN x > 9; DBMS_OUTPUT.PUT_LINE('x=' || x); END LOOP; DBMS_OUTPUT.PUT_LINE('end loop x=' || x);END。
换成显式带参数的游标就可以了,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 loop;
end