/*
FOR x IN N..M LOOP
EXP...
END LOOP;
*/
DECLARE
v_start NUMBER(2):=1;
v_end NUMBER(2):=10;
v_num NUMBER(2): = 10;
BEGIN
FOR v_num IN REVERSE 1..10 LOOP--v_start*1 .. v_end*2 LOOP
DBMS_output.put_line(v_num);
--global.v_num := `99;
END LOOP;
END;
/*
WHILE 条件 LOOP
EXP ...
-- EXIT WHEN 条件
END LOOP;
*/
DECLARE v_num NUMBER(10):=1;
BEGIN
WHILE v_num<=10 LOOP
DBMS_output.put_line(v_num);
v_num := v_num +1;
EXIT WHEN v_num = 4;
END LOOP;
END;
/*
FOR X IN (select ...) LOOP
直接使用 x.字段
END LOOP;
*/
DECLARE v_num NUMBER(10) :=1;
BEGIN
FOR i IN (SELECT * from user_objects uo where rownum<20) LOOP
DBMS_output.put_line(i.object_name||','||i.subobject_name);
END LOOP;
END;
/*
LOOP
EXIT WHEN 条件
EXP...
END LOOP;
*/
DECLARE
v_num NUMBER(10) := 1;
BEGIN
LOOP
EXIT WHEN v_num >= 10 ;
DBMS_OUTPUT.PUT_LINE(V_NUM);
v_num := v_num + 1 ;
END LOOP;
END;
/*
嵌套循环
使用标号 <<标号名>>
*/
DECLARE
RESULT INT;
BEGIN
<<OUTER>>
FOR I IN 1 .. 10 LOOP
<<INNER>>
FOR J IN 1 .. 100 LOOP
RESULT := I * J;
DBMS_OUTPUT.PUT_LINE(to_char(i) || '*' || to_char(j) || ':' ||to_char(RESULT));
EXIT OUTER WHEN RESULT = 100;
EXIT WHEN RESULT = 50;
END LOOP INNER;
DBMS_OUTPUT.PUT_LINE(RESULT);
END LOOP OUTER;
DBMS_OUTPUT.PUT_LINE(RESULT);
END;
DECLARE v_num NUMBER(10):=1;
BEGIN
EXECUTE IMMEDIATE 'select 100+'||100||' from dual' INTO v_num ;
--COMMIT;
DBMS_output.put_line(v_num);
END;
ORACLE 循环语句
最新推荐文章于 2023-12-06 13:44:33 发布