Допустим, у меня есть цикл
Я знаю, что ключевое слово EXIT должно быть внутри цикла, чтобы выйти из цикла, если условие выполнено. И «ВОЗВРАТ» должен быть вне цикла, чтобы выйти из процедуры.
Но если я помещу ‘RETURN’ вне цикла, то я думаю, что независимо от результата цикла, он завершит всю процедуру после завершения цикла?
4 ответа
Если вы хотите проявить дидактичность, вам следует использовать EXIT, чтобы выйти из цикла, а затем использовать RETURN для выхода из процедуры (дублируя все необходимые тесты), следуя, таким образом, правилу структурированного программирования, что «Процедура должна иметь только один вход и один выход ". На практике 99,999% программистов просто закодировали бы RETURN внутри тела цикла, потому что A) понятнее, что происходит (вы не просто выходите из цикла, вы возвращаетесь из процедуры), а B ) это короче. Делай, как хочешь. Удачи.
Базы данных
Это учебное пособие объясняет, как использовать оператор EXIT в Oracle/PLSQL c синтаксисом и примерами.
Описание
В Oracle, оператор EXIT наиболее часто используется для завершения цикла LOOP.
Синтаксис
Параметры или аргументы
boolean_condition не является обязательным. Это условие выхода из цикла.
Пример
Рассмотрим пример использования EXIT в Oracle / PLSQL:
Можно ли прервать выполнение цикла for на pl/sql, если да то как? Пример:
3 ответа 3
- EXIT — Безусловный выход из цикла. Используется посредством применения оператора IF.
- EXIT WHEN — Выход при выполнении условия.
- GOTO — Выход из цикла во внешний контекст.
Самый приемлимый способ прервать цикл — exit [label] when ; . Метка не обязательна, но не рекомендуетя опускать её для лучшей читаемости. Во вложеных циклах, кроме того, она даст возможность, указать из какого цикла выходить, и различать одноименные переменные.
Выходить из цикла контрукцией if-then-else некорректно. Правильно перечислил способы @Crystal, но наиболее правильный — exit when . А вообще в вашем случае подойдёт цикл с условием:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками oracle база-данных sql или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459