Обложка канала

Oracle Developer👨🏻‍💻

Все о разработке в СУБД "Oracle" SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое.

Oracle Developer👨🏻‍💻

5 лет назад
Открыть в
Задача: написать анонимный PL/SQL-блок, который выведет числа от 1 до 9 используя for loop. В выводе не должно быть четных чисел. Решение Не забываем, почти у любой задачи есть несколько вариантов решения. Приведу парочку. 1️⃣ Проверка счетчика итерации на четное значение, используя остаток от деления (mod). Если значение четное - пропускаем эту итерацию (continue). Остаток от деления, довольно часто, используется в задачах типа, “коммитить каждые N записей”.
begin
  for i in 1 .. 10 loop
    if mod(i, 2) = 0 then
          continue;
    end if;
    dbms_output.put_line(i);
  end loop;
end;
/

2️⃣ Использование расширенного Loop в Oracle 21c. Юзаем указание шага через by.
begin
  for i in 1..10 by 2 loop
    dbms_output.put_line(i);    
  end loop;
end;
/

Для экспериментов вполне пригодится СУБД Oracle21с XE, установленная в Docker. 3️⃣ И другие варианты, на которые хватит вашей фантазии 🧠 Кое-какие накидали ребята в чатике. Гранд мерси 😉 #решениезадачи #loop