oracle数据库高级编程(三)


--if判断语句
DECLARE
x NUMBER:=1;
y NUMBER:= 10;
BEGIN
--then其实就和if()的括号相似
IF x > y THEN
dbms_output.put_line('X比Y大');
--注意这边的elsif是没有e的 else
ELSIF y>x THEN
dbms_output.put_line('Y比X大');
ELSE
dbms_output.put_line('一样大');
END IF;
END;

--普通循环,loop 循环体 exit when 退出条件 end loop;
DECLARE
x NUMBER :=1;
BEGIN
LOOP
dbms_output.put_line('X比5小');
x := x+1;
EXIT WHEN x>=5;
END LOOP;
END;

--while循环
--语法:while 循环条件 loop 循环体 end loop;
DECLARE
x NUMBER :=2;
y NUMBER :=6;
BEGIN
WHILE x < y LOOP
dbms_output.put_line('现在是X比较小');
x:=x+1;
IF x >=y THEN
dbms_output.put_line('Y比X大');
END IF;
END LOOP;
END;

--智能循环 for 自定义名 in 1...10 loop 循环体 end loop; (1-10之间循环)
DECLARE
BEGIN
FOR i IN 1 .. 10 LOOP
dbms_output.put_line('循环第'|| i || '次');
END LOOP;
END;

--反转智能循环 加关键字reverse
DECLARE
BEGIN
FOR i IN REVERSE 1 .. 10 LOOP
dbms_output.put_line('循环第'|| i || '次');
END LOOP;
END;

--多层循环,要想用内层条件退出外层循环结构要给外层<<起名>> 然后在内层写exit 起名;
DECLARE
x NUMBER := 1;
y NUMBER := 5;
BEGIN
<<wai>>
WHILE x < 10 LOOP
dbms_output.put_line('x小于10');
x := x+1;
y := y+1;
WHILE y > 8 LOOP
dbms_output.put_line('y大于8');
EXIT wai;
END LOOP;
END LOOP;
END;

