/*******************
流程控制
*******************/
--if
DECLARE
v_id INT:=16;
BEGIN
IF (v_id = 16) THEN
dbms_output.put_line('花季');
END IF;
END;
--if else
DECLARE
v_id INT:=17;
BEGIN
IF (v_id = 16) THEN
dbms_output.put_line('花季');
ELSE
dbms_output.put_line('雨季');
END IF;
END;
--if elsif else
DECLARE
v_id INT:=18;
BEGIN
IF (v_id = 16) THEN
NULL;--什么都不做
ELSIF (v_id = 17) THEN
dbms_output.put_line('雨季');
ELSIF (v_id = 18) THEN
dbms_output.put_line('男孩子');
ELSE
dbms_output.put_line('else');
END IF;
END;
/*******************
循环
loop: 需要定义结束的条件
for while
*******************/
DECLARE
i INT := 0;
BEGIN
LOOP
dbms_output.put_line(i);
i := i+ 1;
IF(i = 5) THEN
EXIT; --结束
END IF;
END LOOP;
END;
DECLARE
i INT := 0;
BEGIN
LOOP
dbms_output.put_line(i);
i := i+ 1;
EXIT WHEN i = 5;
END LOOP;
END;
--for 循环变量
BEGIN
FOR v_i IN 1.. 5
LOOP
dbms_output.put_line(v_i);
END LOOP;
END;
BEGIN
FOR v_i IN 20.. 25
LOOP
dbms_output.put_line(v_i);
END LOOP;
END;
--反转循环
BEGIN
FOR v_i IN REVERSE 20.. 25
LOOP
dbms_output.put_line(v_i);
END LOOP;
END;
BEGIN
FOR v_i IN 1.. 5
LOOP
dbms_output.put_line(v_i);
--自己定义退出循环条件
EXIT WHEN v_i=3;
END LOOP;
END;
--while循环
DECLARE
i INT:= 0;
BEGIN
WHILE i < 5
LOOP
dbms_output.put_line(i);
i:=i+1;
END LOOP;
END;
--嵌套循环 标记
DECLARE
i INT := 0;
j INT :=0;
BEGIN
<<OUTER>> LOOP
dbms_output.put_line('i: ' || i);
i:=i+1;
EXIT WHEN i = 5;
j:=0; --j重新归0
<<INNER>>LOOP
dbms_output.put_line('j: ' || j);
j:=j+1;
EXIT OUTER WHEN j = 3;
END LOOP;
END LOOP;
END;
流程控制
*******************/
--if
DECLARE
v_id INT:=16;
BEGIN
IF (v_id = 16) THEN
dbms_output.put_line('花季');
END IF;
END;
--if else
DECLARE
v_id INT:=17;
BEGIN
IF (v_id = 16) THEN
dbms_output.put_line('花季');
ELSE
dbms_output.put_line('雨季');
END IF;
END;
--if elsif else
DECLARE
v_id INT:=18;
BEGIN
IF (v_id = 16) THEN
NULL;--什么都不做
ELSIF (v_id = 17) THEN
dbms_output.put_line('雨季');
ELSIF (v_id = 18) THEN
dbms_output.put_line('男孩子');
ELSE
dbms_output.put_line('else');
END IF;
END;
/*******************
循环
loop: 需要定义结束的条件
for while
*******************/
DECLARE
i INT := 0;
BEGIN
LOOP
dbms_output.put_line(i);
i := i+ 1;
IF(i = 5) THEN
EXIT; --结束
END IF;
END LOOP;
END;
DECLARE
i INT := 0;
BEGIN
LOOP
dbms_output.put_line(i);
i := i+ 1;
EXIT WHEN i = 5;
END LOOP;
END;
--for 循环变量
BEGIN
FOR v_i IN 1.. 5
LOOP
dbms_output.put_line(v_i);
END LOOP;
END;
BEGIN
FOR v_i IN 20.. 25
LOOP
dbms_output.put_line(v_i);
END LOOP;
END;
--反转循环
BEGIN
FOR v_i IN REVERSE 20.. 25
LOOP
dbms_output.put_line(v_i);
END LOOP;
END;
BEGIN
FOR v_i IN 1.. 5
LOOP
dbms_output.put_line(v_i);
--自己定义退出循环条件
EXIT WHEN v_i=3;
END LOOP;
END;
--while循环
DECLARE
i INT:= 0;
BEGIN
WHILE i < 5
LOOP
dbms_output.put_line(i);
i:=i+1;
END LOOP;
END;
--嵌套循环 标记
DECLARE
i INT := 0;
j INT :=0;
BEGIN
<<OUTER>> LOOP
dbms_output.put_line('i: ' || i);
i:=i+1;
EXIT WHEN i = 5;
j:=0; --j重新归0
<<INNER>>LOOP
dbms_output.put_line('j: ' || j);
j:=j+1;
EXIT OUTER WHEN j = 3;
END LOOP;
END LOOP;
END;