Количество итераций в" For Loop " Oracle PL / SQL
Написать блок PLSQL для отображения нечетных чисел и суммарных нечетных чисел в заданном числе? Пример: если заданное число равно 3, вывести как показано ниже 1-нечетное число 3-нечетное число Итого 2 нечетных числа в 3
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;
1 ответ:
Вам просто нужно инициализировать и назначить счетчик
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>