2009-09-02 3 views

ответ

1

Иногда есть несколько способов сделать что-то. Большинство разработчиков склонны использовать %NOTFOUND (по крайней мере, по моему опыту).

Редактировать

Я не знаю, почему devisers языка PL/SQL дал нам %NOTFOUND. Я постараюсь забыть спросить Брин Ллевеллин в следующий раз, когда я его увижу. Но я предполагаю, что они просто подумали, что это будет полезно. При кодировании, как и в других формах письма, мы всегда должны пытаться выразить себя позитивно, потому что позитивность более четко выражает наши намерения. То есть,

exit when c1%notfound; 

понятнее затем

exit when not c1%found; 

Но, возможно, это всего лишь дело вкуса.

Однако ситуация с %ISOPEN намного легче ответить. Мы не используем оператора %ISNOTOPEN. Есть два раза, когда мы хотели бы использовать %ISOPEN. Первый - это прежде, чем мы откроем курсор, когда есть вероятность, что курсор уже может быть открытым (это должно быть очень редким обстоятельством). Другое дело, когда нам может понадобиться закрыть открытый курсор, скажем, в блоке EXCEPTIONS. В обеих ситуациях нам интересно знать, что курсор открыт. В тестировании нет значения, не будет ли курсор НЕ ОТКРЫТ.

+0

Thanx для ваших ans. Однако почему это только для% FOUND, а не для% ISOPEN? Я хочу знать, есть ли там какая-то другая причина. –

1

PL/SQL, как родственные языки Ada и SQL, как правило, выступают несколько английский-подобную структуру (например, знаете ли вы, что COMMIT команда имеет дополнительный параметр «Work», который не делает абсолютно ничего?)

Умение читать код вслух естественным образом - неплохая особенность - например, «Выход, когда курсор c1 не найден» звучит немного более естественно, чем «Выход, если не найден курсор» ...

+0

Очень интересен параметр «РАБОТА». Я нашел, что подобная англичанам структура очень полезна при просмотре кода с помощью типов бизнес-анализа, которые не работают с кодом весь день. – caddis

Смежные вопросы