本文共 1795 字,大约阅读时间需要 5 分钟。
-- Start
DECLARE AMOUNT INT := 0;BEGIN LOOP AMOUNT := AMOUNT + 1; IF AMOUNT > 4 THEN EXIT; -- 退出循环 END IF; END LOOP; DBMS_OUTPUT.PUT_LINE(AMOUNT);END;/
DECLARE AMOUNT INT := 0;BEGIN LOOP AMOUNT := AMOUNT + 1; -- CONTINUE 执行下一循环 IF AMOUNT = 3 THEN CONTINUE; END IF; -- CONTINUE WHEN 执行下一循环 CONTINUE WHEN AMOUNT = 4; -- EXIT 退出循环 IF AMOUNT = 10 THEN EXIT; END IF; -- EXIT WHEN 退出循环 EXIT WHEN AMOUNT = 10; END LOOP;END;/
DECLARE AMOUNT INT := 0; BEGIN -- 从小到大循环:1+2+3 FOR i IN 1..3 LOOP AMOUNT := AMOUNT + i; END LOOP; DBMS_OUTPUT.PUT_LINE (AMOUNT); -- 从大到小循环:3+2+1 AMOUNT := 0; FOR i IN REVERSE 1..3 LOOP AMOUNT := AMOUNT + i; END LOOP; DBMS_OUTPUT.PUT_LINE (AMOUNT);END;/
我们还可以通过 FOR 语句迭代表。
CREATE TABLE Student( Id INT NOT NULL, Name VARCHAR2(30) NOT NULL, Class VARCHAR2(10));INSERT INTO Student values (1, '张三', '116班');INSERT INTO Student values (2, '李四', '117班');BEGIN FOR StudentVar IN ( SELECT * FROM Student ) LOOP DBMS_OUTPUT.PUT_LINE('学号: ' || StudentVar.Id || ', 姓名: ' || StudentVar.Name ); END LOOP;END;/
DECLARE AMOUNT INT := 0;BEGIN WHILE AMOUNT < 4 LOOP AMOUNT := AMOUNT + 1; END LOOP; DBMS_OUTPUT.PUT_LINE(AMOUNT);END;/
BEGIN -- 可以给循环语句定义标签 <> WHILE TRUE LOOP < > FOR i IN 1..9 LOOP IF i = 9 THEN CONTINUE FIRST_FOR; -- 跳转到 WHILE 循环 END IF; IF i = 8 THEN GOTO FIRST_FOR; -- 跳转到 WHILE 循环 ELSE NULL; -- NULL 语句表示什么也不干 END IF; EXIT FIRST_FOR WHEN i = 5; END LOOP; END LOOP;END;/
--更多参见:
-- 声明:转载请注明出处
-- Last Edited on 2015-01-12
-- Created by ShangBo on 2015-01-02
-- End