Введение в циклы в PL / SQL

Процедурный язык / язык структурированных запросов или PL / SQL - это процедурное расширение Oracle Corporation для СУБД Oracle. PL / SQL расширил SQL, добавив конструкции, используемые на процедурных языках, для обеспечения более сложного программирования, чем SQL. Примерами этих структур являются IF… THEN… ELSE, базовые циклы, циклы FOR и циклы WHILE.

Объясните различные типы циклов в PL / SQL

Эта статья объяснит вам итеративную структуру управления средствами циклов PL / SQL; это позволит вам запускать один и тот же код несколько раз. PL / SQL предоставляет три разных типа циклов:

  • Простой или бесконечный цикл
  • Цикл FOR
  • WHILE петля

Здесь каждый цикл предназначен для определенной цели, правил использования и руководящих принципов для высококачественного создания.

Примеры разных циклов

Рассмотрим следующие три процедуры, чтобы по-разному понимать различные циклы и их способность решать проблемы.

1. Простая петля

Этот цикл так же прост, как и его имя. Он начинается с ключевого слова LOOP и заканчивается оператором «END LOOP».

Синтаксис

LOOP
The sequence of statements;
END LOOP;

Здесь, согласно приведенному выше синтаксическому ключевому слову, «LOOP» отмечает начало цикла, а «END LOOP» - конец цикла. Последовательность операторной части может содержать любой оператор для исполнения.

Пример простого цикла

Давайте напишем программу для вывода таблицы умножения на 18.

Здесь, в вышеприведенном цикле, у нас нет оператора «EXIT»; означает, что выполнение вывода будет продолжаться до бесконечности, пока мы не закроем эту программу вручную.

См. Ниже программу с оператором Exit:

Объяснение вышеуказанной программы

В разделе объявлений мы объявили две переменные; переменная v_counter будет служить счетчиком, а v_result будет содержать результат умножения.

Вниз по разделу выполнения у нас есть простой цикл, здесь у нас есть три утверждения.

  • Первое утверждение будет работать как наше обновление; это обновит наш счетчик и увеличит его на 1.
  • Второе утверждение является арифметическим выражением, которое выполнит умножение нашей таблицы и сохранит результат в переменной v_result.
  • Третий оператор является оператором вывода, который будет печатать результат умножения в отформатированном виде.

Использование заявления о выходе

В соответствии с оператором выхода, если v_counter> = 10, цикл с выходом означает, что цикл будет выполнен 10 раз.

Выход:

2. Цикл FOR

Цикл FOR позволяет выполнять блок операторов многократно в течение фиксированного числа раз.

Синтаксис

FOR loop_counter IN (REVERSE) lower_limit .. upper_limit LOOP
Statement1;
Statement2;
….Statement3;
END LOOP;

  • Первая строка синтаксиса - это оператор цикла, где ключевые слова FOR отмечают начало цикла, за которым следует счетчик цикла, который является неявной целочисленной переменной индекса.
  • Это означает, что вам не нужно определять эту переменную в разделе объявления, а также она будет увеличиваться на 1 неявно на каждой итерации вашего цикла, в отличие от других циклов, где мы должны определить счетчик цикла.
  • Ключевое слово IN обязательно должно быть в программе FOR Loop.
  • Ключевое слово REVERSE не является обязательным, но всегда используется вместе с Keyword IN.
  • Если используется ключевое слово REVERSE, цикл будет повторяться в обратном порядке.
  • lower_limit и upper_limit - это два целых числа. Эти две переменные определяют количество итераций цикла.
  • Две точки между этими двумя переменными служат оператором диапазона.
  • Тогда у нас есть тело цикла, которое может быть оператором или группой операторов.
  • В конце концов, у нас есть фраза END LOOP, которая обозначает окончание цикла.

Пример № 1

Здесь, как в приведенной выше программе, у нас есть цикл FOR, который будет печатать значение переменной v_counter от 11 до 20.

Выход:

Пример №2: Теперь давайте напечатаем то же самое в обратном порядке, используя цикл FOR.

Просто добавьте ключевое слово REVERSE после IN и до 11, это выполнит то же самое o / p, но в обратном порядке.

3. ЦИКЛ

Хотя цикл выполняет операторы программы несколько раз, это лучше всего использовать для программы, когда ни одна из итераций неизвестна.

Синтаксис

WHILE condition LOOP
Statement 1;
Statement 2;

Statement N;
END LOOP;

  • В отличие от другого синтаксического цикла WHILE, синтаксис очень прост для понимания. Здесь, согласно приведенному выше синтаксису, «WHILE» отмечает начало цикла вместе с условием, а «END LOOP» определяет конец цикла.
  • Операторы с 1 по N являются исполняемыми операторами, определенными в теле цикла. Кроме того, в конце мы упомянули END LOOP, который указывает на конец цикла while.
  • Чтобы выполнить операторы внутри тела цикла While, условие должно быть истинным.

Пример: вывести таблицу умножения 17 с использованием цикла while.

  • В этом примере у нас есть первая переменная «v_counter», которая будет служить в качестве счетчика, а вторая переменная «v_result», которая будет содержать результат умножения.
  • Здесь первый оператор является арифметическим выражением внутри цикла WHILE, который будет выполнять задачу умножения таблицы, и результат будет сохранен в v_result.
  • Вторым оператором является оператор print, который будет печатать результаты умножения. Третье утверждение - счетчик обновлений, который обновляет счетчик при каждой итерации.
  • Этот цикл while будет работать до тех пор, пока значение счетчика не будет больше или равно 10, а цикл WHILE получит значение счетчика после 10.

Выход:

Преимущества циклов в PL / SQL

  • Повторное использование кода - лучшее преимущество циклов, нам не нужно писать код повторно для каждой итерации, используя циклы, мы можем повторно использовать код в каждой итерации.
  • Циклы также помогают нам уменьшить размер кода или размер программы. Все, что нам нужно сделать, это просто написать один простой код и поместить его в любой цикл, чтобы завершить работу без кодирования для разных выходов из одной и той же программы.
  • Снижение сложности также добавило преимущество петель.

Вывод - циклы в PL / SQL

SQL является единственным интерфейсом к реляционной базе данных, а PL / SQL является процедурным расширением для SQL. Важно понимать, как работает SQL, и правильно проектировать базы данных и бизнес-логику, чтобы получить правильный набор результатов. PL / SQL может использоваться внутри базы данных, и он имеет много мощных функций. Есть много улучшений в PL / SQL в Oracle Database 12.1. Используйте SQL всякий раз, когда это возможно, но если ваш запрос становится слишком сложным или требуются процедурные функции, лучше вместо этого использовать PL / SQL.

Рекомендуемые статьи

Это было руководство по циклам в PL / SQL. Здесь мы также обсудим преимущества и различные типы циклов с примерами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше:

  1. Что такое PL / SQL?
  2. Тестирование масштабируемости
  3. Что такое язык программирования R?
  4. Что такое PHP?
  5. 36 ключевых слов в SQL с примерами
  6. Циклы в PowerShell | Типы | Преимущества