oracle - "For Loop"Oracle PL/SQL 中的迭代计数

标签 oracle loops plsql count iteration

编写PLSQL块以显示给定数字中的奇数和总奇数?例如:如果给定的数字是 3,则显示如下 1 是奇数 3 是奇数 3 中共有 2 个奇数

CREATE OR REPLACE PROCEDURE odd_num(p_num NUMBER ) 
   IS s_num NUMBER;
BEGIN 
   FOR i_num IN 1..p_num  
      LOOP   
         IF mod(i_num,2) = 1 
         THEN     
            dbms_output.put_line(i_num ||' is Odd Number');  
         END IF; 
      END LOOP;  
   dbms_output.put_line('Total '|| s_num ||' Odd Numbers in '||p_num);
END;

最佳答案

您只需要初始化 计数器 并将其分配给 s_num 。只需在 IF 块中添加以下内容:

s_num := s_num +1;

例如,
SQL> CREATE OR REPLACE PROCEDURE odd_num(p_num NUMBER )
  2  IS
  3  s_num NUMBER;
  4  BEGIN
  5     s_num :=0;
  6     FOR i_num IN 1..p_num
  7        LOOP
  8           IF mod(i_num,2) = 1
  9           THEN
 10              -- Increment the counter once for each iteration
 11              s_num := s_num +1;
 12              dbms_output.put_line(i_num ||' is Odd Number');
 13           END IF;
 14        END LOOP;
 15     dbms_output.put_line('Total '|| s_num ||' Odd Numbers in '||p_num);
 16  END;
 17  /

Procedure created.

SQL> sho err
No errors.

让我们 执行 过程 :
SQL> SET SERVEROUTPUT ON
SQL> EXEC odd_num(5);
1 is Odd Number
3 is Odd Number
5 is Odd Number
Total 3 Odd Numbers in 5

PL/SQL procedure successfully completed.

SQL>

关于oracle - "For Loop"Oracle PL/SQL 中的迭代计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30882928/

相关文章:

sql - 如何在 Oracle 中查询 CLOB 列

sql - 甲骨文 - 将日期分成几个季度

sql - SQL (Oracle) 中的递归计算

jquery清除除一个之外的所有输入字段的值

java - java中的IF ELSE语句删除sql joption消息

sql - 在单行不同列中显示Oracle树结构层次结构数据

java - 在为 Oracle jdbc 驱动程序绑定(bind)后打印 preparedStatement SQL

java - 使用动态变量 Java 在循环中打印数组

c - 循环遍历字符串数组,然后使用 scanf_s c 转换为字节

java - 如何指定jdbc/DataSource?