Литералы PL/SQL

Литерал PL/SQL - это значение, которое не представлено идентификатором, то есть просто значение, которое существует само по себе.

Строковые литералы PL/SQL

Строковый литерал  - это текст, заключенный в одинарные кавычки, например:

'What a great language!'

В отличие от идентификаторов, строковые литералы в PL/SQL чувствительны к регистру, то есть следующие два литерала воспринимаются как различные:

'Steven'

'steven'

Так что следующее условие будет вычислено как FALSE:

IF 'Steven' = 'steven'

Числовые литералы PL/SQL

Числовые литералы могут быть целыми или вещественными числами (то есть содержать дробную часть). Имейте в виду, что PL/SQL считает число 154.00 вещественным числом типа NUMBER, несмотря на то, что его дробная часть равна нулю и на самом деле число является целым. Целые и вещественные числа имеют разное внутреннее представление, и преобразование из одних в другие влечет за собой некоторые дополнительные накладные расходы.

Для записи числового литерала также можно использовать экспоненциальный формат. Буква «E» (в верхнем или нижнем регистре) в записи числа означает его умножение на 10 в соответствующей степени, на-пример 3.05E19, 12e-5.

Начиная с версии Oracle Database 10g Release 1 вещественное число может относиться к типу Oracle NUMBER или к стандартному типу IEEE 754 с плавающей точкой. Литералы с плавающей точкой могут иметь двоичное представление с обычной (32 бита, в конце ставится буква «F») или с двойной точностью (64 бита, в конце ставится буква «D»).

В некоторых выражениях можно использовать именованные константы (табл. 1), определенные в стандарте IEEE (Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике).

Таблица 1. Именованные константы для BINARY_FLOAT и BINARY DOUBLE

Описание BIN ARY_FLOAT (32 бита) BINARY_DOUBLE (64 бита)
Нечисло («Not a number» - NaN); результат деления на ноль или некорректной операции BINARY_FLOAT_NAN BINARY_DOUBLE_NAN
Положительная бесконечность BINARY_FLOAT_INFINITY BINARY_DOUBLE_INFINITY
Наибольшее конечное число, не превышающее порог переполнения BINARY_FLOAT_MAX_NORMAL BINARY_DOUBLE_MAX_NORMAL
Наименьшее нормальное число; порог потери значимости BINARY_FLOAT_MIN_NORMAL BINARY_DOUBLE_MIN_NORMAL
Наибольшее положительное число, не превышающее порог переполнения BINARY_FLOAT_MAX_SUBNORMAL BINARY_DOUBLE_MAX_SUBNORMAL
Наименьшее число, которое может быть представлено BINARY_FLOAT_MIN_SUBNORMAL BINARY_DOUBLE_MIN_SUBNORMAL

Логические литералы

PL/SQL предлагает два литерала для представления логических (булевых) значений: TRUE и FALSE. Эти значения не являются строковыми, их не следует заключать в кавычки. Используйте логические литералы для присваивания значений логическим переменным, например:

DECLARE
enough_money BOOLEAN; -- Объявление логической переменной BEGIN
enough_money := FALSE; -- Присваивание ей значения END;

При проверке значения логического выражения не обязательно ссылаться на литерал. Выражение будет «говорить само за себя», как в условии следующего оператора IF:

DECLARE
enough_money BOOLEAN;
BEGIN
IF enough_money THEN

Логическое выражение, переменная или константа также могут принимать значение NULL, что не есть ни TRUE, ни FALSE.

Вас заинтересует / Intresting for you:

Oracle Text и PL/SQL: многоязы...
Oracle Text и PL/SQL: многоязы... 1278 просмотров Максим Николенко Fri, 18 Oct 2019, 12:41:03
Сопровождение объектных типов ...
Сопровождение объектных типов ... 1915 просмотров Максим Николенко Sun, 03 Nov 2019, 09:18:04
 Версии PL/SQL и Oracle 12c
Версии PL/SQL и Oracle 12c 2434 просмотров Александров Попков Tue, 21 Nov 2017, 13:28:01
Структура блока PL/SQL
Структура блока PL/SQL 5551 просмотров Илья Дергунов Tue, 10 Jul 2018, 06:35:51
Войдите чтобы комментировать