http://blog.sina.com.cn/s/blog_710faf420100zc6v.htmlOracle中三种循环(For、While、Loop)loop、for it1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x:=9; <<repeat_loop>> --循环点 x:=x-1; DBMS_OUTPUT.PUT_LINE(X); IF X>0 THEN GOTO repeat_loop; --当x的值小于9时,就goto到repeat_loop END IF; END; /
2。ORACLE中的FOR循环用法 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=1 END; /
3。ORACLE中的WHILE循环用法 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('外:x='||x); END; /
4。ORACLE中的LOOP循环用法 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('外:x='||x); END; /
while 条件loop /*条件成立后执行*/exit when a>10 --当a>10的时候退出循环 end loop; ------------------------------------------------------------exit :用于直接退出当前循环exit when : 用于在满足特定条件时退出当前循环continue:直接结束本次循环 进行下一次循环comtinue when :满足特定条件就结束本次循环 进行下一次循环
it1.ORACLE中的GOTO用法
DECLARE
x number;
BEGIN
x:=9;
<<repeat_loop>> --循环点
x:=x-1;
DBMS_OUTPUT.PUT_LINE(X);
IF X>0
THEN
GOTO repeat_loop; --当x的值小于9时,就goto到repeat_loop
END IF;
END;
/
2。ORACLE中的FOR循环用法
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=1
END;
/
3。ORACLE中的WHILE循环用法
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('外:x='||x);
END;
/
4。ORACLE中的LOOP循环用法
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('外:x='||x);
END;
/
------------------------------------------------------------exit :用于直接退出当前循环exit when : 用于在满足特定条件时退出当前循环continue:直接结束本次循环 进行下一次循环comtinue when :满足特定条件就结束本次循环 进行下一次循环
declare
counter number(3):=0;
sumResult number:=0;
begin
loop
counter := counter + 1;
sumResult := sumResult + counter;
exit when counter >= 100;
end loop;
dbms_output.put_line('result is:'||to_char(sumResult));
end;
exit :用于直接退出当前循环exit when : 用于在满足特定条件时退出当前循环continue:直接结束本次循环 进行下一次循环comtinue when :满足特定条件就结束本次循环 进行下一次循环--for的使用
declare
counter number(3):=0;
sumResult number:=0;
begin
for counter in 1..100 loop
sumResult := sumResult + counter;
end loop;
dbms_output.put_line('result is:'||to_char(sumResult));
end;
loop语句
[<<label_name>>]
LOOP
statement...
END LOOP [label_name]
【语法说明】
<<label_name>>:LOOP结构的标签,是可选项。
LOOP:LOOP循环开始标志。
statement:LOOP语句中循环执行的语句序列。
END LOOP:LOOP循环结束标志,可以添加LOOP结构的标签。
for语句
[<<label_name>>]
for variable_name in[ REVERSE ] lower_limit .. upper_limit loop
statement;
END LOOP ;
【语法说明】
variable_counter_name:循环计数器,是一个变量,它可以得到当前的循环指数。
lower_limit:循环范围的下标界。
upper_limit:循环范围的上标界。
下标和上标之间的".."不能省略。
while语句
[<<label_name>>]
WHILE condition_expression loop
statement...
end loop;
【语法说明】
condition_expression:布尔表达式。
statement:语句序列,当condition_expression为TRUE时,该语句序列可获得执行权。