循环语句在日常运维中经常会用到,最常见的三种就是:基本循环、WHILE循环和FOR循环。
1.基本循环
基本循环至少执行一次循环体内的语句,格式以LOOP开始,以END LOOP结束,语法如下:
--基本循环
LOOP
statement1;
...
EXIT [WHEN condition];
END LOOP;
PS:在编写基本循环时,一定要包含EXIT语句,否则程序会陷入死循环。
在使用基本循环时,需要先定义循环控制变量,并且在循环体内修改变量的值。
例如向测试表中插入5条数据:
DECLARE
i INT :=1;
BEGIN
LOOP
INSERT INTO AA.TEST VALUES(i);
EXIT WHEN i=5;
i:=i+1;
END LOOP;
END;
COMMIT;
2.WHILE循环
WHILE循环只有条件为TRUE时,才会执行循环体内的语句,格式以WHILE....LOOP开始,以END LOOP 结束,语法如下:
--WHILE循环
WHILE condition LOOP
statement1;
statement2;
...
END LOOP;
PS:在使用WHILE循环时,需要先定义循环控制变量,并且在循环体内修改变量的值。
例如向测试表中插入5条数据:
DECLARE
i INT :=1;
BEGIN
WHILE i<=5 LOOP
INSERT INTO AA.TEST VALUES(i);
i:=i+1;
END LOOP;
END;
COMMIT;
3.FOR循环
FOR循环时会隐含定义循环控制变量,格式以FOR....LOOP开始,以END LOOP 结束,语法如下:
--FOR循环
FOR counter in [REVERSE] low_bound .. high_bound
LOOP
statement1;
statement2;
...
END LOOP;
PS:counter是循环控制变量,隐含定义。
low_bound和high_bound分别对应于循环控制变量的下界值和上界值。
默认情况下,每次循环控制变量会从下界往上界递增1;如果指定REVERSE关键字,则每次循环控制变量会从上界往下界递减1。
例如向测试表中插入1,2,3,4,5数据:
BEGIN
FOR i IN 1 .. 5
LOOP
INSERT INTO AA.TEST VALUES(i);
END LOOP;
END;
COMMIT;
例如向测试表中插入5,4,3,2,1数据:
BEGIN
FOR i IN REVERSE 1 .. 5
LOOP
INSERT INTO AA.TEST VALUES(i);
END LOOP;
END;
COMMIT;
仅供参考,如有不足,欢迎斧正。
更多资讯请上达梦技术社区了解: https://eco.dameng.com/