Плюсы / минусы с использованием подхода курсора против подхода начала-конца-исключения для однострочных запросов в PL / SQL - PullRequest
5 голосов
/ 23 мая 2011

Всякий раз, когда пишется запрос на PL / SQL, где ожидается только одна строка, это часто делается двумя способами:

  1. Использование неявного SELECT INTO и проверка на TOO_MANY_ROWSи NO_DATA_FOUND исключения.
  2. Используйте явный курсор и просто извлеките первую строку из курсора.

Хотя оба подхода дают один и тот же результат, каковы плюсы и минусыиз этих подходов?

1 Ответ

6 голосов
/ 23 мая 2011

Когда оператор select должен возвращать ровно одну строку, тогда «SELECT INTO» - лучший подход. Да, многие разработчики предпочитают использовать курсор и извлекать только одну строку, потому что это избавляет их от «хлопот» при работе с NO_DATA_FOUND - то есть они скрывают проблему под ковром и оставляют пользователю загадочную ошибку. Я написал об этой плохой практике * недавно .

(* плохая практика, которая часто печально закреплена в стандартах проекта PL / SQL!)

Что касается подсчета и последующего запроса, то это просто удваивает работу, поэтому также следует избегать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...