--PL/SQL控制流程
--条件控制语句
DECLARE
V_VAR NUMBER(4) := 3;
BEGIN
IF V_VAR = 1
THEN
DBMS_OUTPUT.PUT_LINE('V_VAR=' || V_VAR);
ELSIF V_VAR = 2
THEN
DBMS_OUTPUT.PUT_LINE('V_VAR=' || V_VAR);
ELSE
DBMS_OUTPUT.PUT_LINE('V_VAR=' || V_VAR);
END IF;
END;
/
--循环语句
--1.LOOP......END LOOP
DECLARE
V_COUNT BINARY_INTEGER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('V_COUNT=' || V_COUNT);
V_COUNT := V_COUNT + 1;
IF V_COUNT = 10 THEN
EXIT;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('V_COUNT循环后的值是:'||V_COUNT);
END;
/
--FOR循环
/*
格式
FOR V_VAR IN (REVERSE) 10 .. 20
LOOP
do something;
END LOOP;
*/
DECLARE
V_COUNT BINARY_INTEGER := 1;
BEGIN
FOR V_COUNT IN 10 .. 20
LOOP
DBMS_OUTPUT.PUT_LINE('V_COUNT=' || V_COUNT);
IF V_COUNT = 30 THEN
EXIT;
END IF;
END LOOP;
END;
/
--WHILE循环
/*
WHILE V_VAR < 20
LOOP
END LOOP;
*/
DECLARE
V_COUNT BINARY_INTEGER := 1;
BEGIN
WHILE V_COUNT <= 10
LOOP
V_COUNT := V_COUNT + 1;
DBMS_OUTPUT.PUT_LINE('V_COUNT=' || V_COUNT);
END LOOP;
END;
/
--条件退出LOOP循环
DECLARE
V_VAR NUMBER(4) := 1;
BEGIN
LOOP
V_VAR := V_VAR +2;
EXIT WHEN V_VAR > 20;
DBMS_OUTPUT.PUT_LINE('V_VAR = ' || V_VAR);
END LOOP;
END;
/
--条件CONTINUE LOOP循环
DECLARE
V_VAR NUMBER(4) := 1;
BEGIN
LOOP
V_VAR := V_VAR +2;
IF V_VAR < 10 THEN
DBMS_OUTPUT.PUT_LINE('HELLO,WORLD;V_VAR = ' || V_VAR);
END IF;
CONTINUE WHEN V_VAR < 10;
EXIT WHEN V_VAR > 20;
DBMS_OUTPUT.PUT_LINE('V_VAR = ' || V_VAR);
END LOOP;
END;
/