创建和使用 SPL 例程 / 编写语句块 |
WHILE 与 FOR 语句都可在 SPL 例程中创建执行循环。WHILE 循环以 WHILE condition 开始,只要条件为真就执行语句块,并以 END WHILE 结束。
图: 只要在 WHILE 语句中指定的条件为真,例程就执行 WHILE 循环。
CREATE PROCEDURE test_rows( num INT ) DEFINE i INTEGER; LET i = 1; WHILE i < num INSERT INTO table1 (numbers) VALUES (i); LET i = i + 1; END WHILE; END PROCEDURE;
前图中的 SPL 例程接受整数作为参数,然后在它每一次执行 WHILE 循环时,就将整数值插入到 table1 的 numbers 列内。插入的值从 1 开始,且增大到 num - 1。
图: 接受整数为参数,然后将整数值插入到 numbers 列的例程。
CREATE PROCEDURE endless_loop() DEFINE i INTEGER; LET i = 1; WHILE ( 1 = 1 ) -- don't do this! LET i = i + 1; INSERT INTO table1 VALUES (i); END WHILE; END PROCEDURE;
FOR 循环从 FOR 语句扩展到 END FOR 语句,并执行在 FOR 语句中定义的指定次数的迭代。下图展示在 FOR 循环中定义迭代的几种方式。
图: 定义 FOR 循环中的迭代。
FOR i = 1 TO 10 . . . END FOR; FOR i = 1 TO 10 STEP 2 . . . END FOR; FOR i IN (2,4,8,14,22,32) . . . END FOR; FOR i IN (1 TO 20 STEP 5, 20 to 1 STEP -5, 1,2,3,4,5) . . . END FOR: