DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Выражения

Выражения PL/SQL используются в качестве значений выражения поэтому использование выражения как самостоятельного оператора бессмысленно — оно должно быть элементом оператора. Например, вы­ражение может находиться в правой части операции присваивания или быть элементом SQL-оператора. Тип выражения определяют составляю­щие его операции и типы операндов.
Операнд — это аргумент операции. В операциях PL/SQL используется либо один аргумент (унарная, или одноместная, операция), либо два аргу­мента (бинарная, или двухместная, операция). Например, операция от­рицания (-) является унарной, а операция умножения (*) — бинарной.
Приоритет операций выражения определяет порядок их выполнения. Рассмотрим числовое выражение:
Приоритет операции умножения выше приоритета операции сложе­ния, поэтому результатом этого выражения будет 38 (3+35), а не 56 (8*7). Чтобы изменить порядок вычисления выражения, заданный по умолча­нию, следует использовать круглые скобки. Например, результатом при­веденного ниже выражения будет 56:
Символьные выражения
Существует лишь одна символьная операция — операция конкатенации, или сцепления (| |). С ее помощью соединяются две или большее количество символьных строк (или аргументов, которые могут быть неявно преобра­зованы в символьные строки). Например, результатом выражения
Если все операнды в выражении конкатенации имеют тип CHAR, то и
оно само будет иметь тип CHAR. Если же хотя бы один операнд имеет
тип        выражение будет иметь тип        Считается, что
строковые литералы имеют тип CHAR, поэтому результатом предыдуще­го примера является значение типа CHAR. Однако в следующем блоке пе­ременной v_Result присваивается выражение, результат которого -значение типа

Логические выражения
Во всех управляющих структурах PL/SQL (за исключением GOTO) испо­льзуются логические выражения, называемые также условиями. Логическое, или булево, выражение — это любое выражение, которое дает в результате логическое значение (TRUE (истина), FALSE (ложь) или NULL). Ниже приведен ряд логических выражений:
В трех операциях — AND (и), OR (или) и NOT (не) — логические зна­чения используются в качестве аргументов и возвращаются в качестве ре­зультата. Возможные комбинации описываются в таблицах истинности
Рис. З.5. Таблицы истинности
(см. рис. 3.5). С помощью этих операций реализуется стандартная трех­значная логика. AND возвращает TRUE только в том случае, если истин­ны оба операнда, OR возвращает FALSE только тогда, когда оба операнда ложны.

NULL-значения усложняют логические выражения (напомним, что NULL — это пропущенное или неизвестное значение). Результатом выражения
является NULL, так как неизвестно, истинен ли второй операнд. Более подробно об этом рассказывается ниже в разделе "NULL-условия".
В операциях сравнения, или отношения, в качестве операндов исполь­зуются числа, символы или данные, а возвращаются логические значения. Ниже приведена таблица, описывающая эти операции.
Операция        Описание
Равно (равенство)
Не равно (неравенство)
<        Меньше
>        Больше
Меньше или равно
>=        Больше или равно
Оператор IS NULL возвращает значение TRUE только тогда, когда операндом является NULL. NULL-значения не могут быть проверены на истинность при помощи операций отношения, так как любое выражение отношения, операндом которого является NULL, возвращает NULL.
Оператор LIKE (подобие) применяется для сопоставления строк сим­волов с некоторым образцом, подобно тому, как это делается в регуляр­ных выражениях системы Unix. Знак подчеркивания (_) соответствует одному символу, а знак процента (%) — нулю и более символам. Приве­денные ниже выражения возвращают TRUE:
А это выражение возвращает TRUE:
Оператор BETWEEN (между) объединяет операции <= и >= в одном выражении. Например, приведенное ниже выражение возвращает значе­ние FALSE:
Оператор IN (в) возвращает TRUE, если первый операнд содержится
в наборе, определяемом вторым операндом. Например, результат этого
выражения — FALSE:
Если в наборе содержатся NULL-значения, они игнорируются, так как при сравнении некоторого значения с NULL всегда будет возвращаться NULL.
 









jAntivirus