📜  oracle 中的 for 循环 (1)

📅  最后修改于: 2023-12-03 15:18:09.103000             🧑  作者: Mango

Oracle中的For循环

在Oracle中,For循环允许重复执行一个代码块,直到满足结束条件为止。这个过程是自动化的,因为它在每次迭代中递增或递减一个计数器变量。

基本语法

Oracle的for循环为以下结构:

FOR counter_variable IN [REVERSE] lower_limit .. upper_limit
LOOP
   -- Statements to be executed
END LOOP;

其中,counter_variable是一个循环变量,lower_limit是计数器变量的起始值,upper_limit是计数器变量的结束值。REVERSE关键字可选,表示计数器变量从upper_limit递减到lower_limit 。

示例

我们来看一个简单的例子。以下代码块计算从1到10的总和并将结果存储在total_sum变量中。它使用一个递增计数器变量i来迭代循环:

DECLARE
   total_sum number := 0;
BEGIN
   FOR i IN 1..10 LOOP
      total_sum := total_sum + i;
   END LOOP;
   dbms_output.put_line('Total Sum: ' || total_sum );
END;

在这个例子中,我们使用一个递增计数器变量i来迭代循环。然后,total_sum通过循环体内的每个迭代来累加每个i值,最终存储总和并输出结果。

倒序迭代

我们来看一个倒序迭代的例子。以下代码块在从10到1的范围内迭代计数器变量i,计算这些值的总和并输出结果:

DECLARE
   total_sum number := 0;
BEGIN
   FOR i IN REVERSE 1..10 LOOP
      total_sum := total_sum + i;
   END LOOP;
   dbms_output.put_line('Total Sum: ' || total_sum );
END;

在这个例子中,我们使用了REVERSE关键字,它将计数器变量从最高值10递减到最小值1。

嵌套循环

如果需要,在Oracle中可以嵌套多个for循环,以构建一个更复杂的逻辑。以下示例显示了如何使用两个嵌套for循环来打印出一些星形。

DECLARE
   n NUMBER := 5;
BEGIN
   FOR i IN 1..n LOOP
      FOR j IN 1..i LOOP
         dbms_output.put('*');
      END LOOP;
      dbms_output.put_line('');
   END LOOP;
END;

在这个例子中,我们使用FOR循环来打印出星形,外层循环控制行数,内部循环控制每行中的星号数。

总结

Oracle中的For循环是一种功能强大的迭代语句,它可用于执行多次的计算、操作和输出等任务。通过使用循环变量、循环体和结束条件,我们可以轻松地控制和定制循环迭代过程。同时,对于多层循环和/或复杂的操作,嵌套循环提供了一个灵活的解决方案。