Скалярные типы данных
Каждая константа, переменная и параметр имеют тип данных (или тип), который определяет формат хранения, ограничения и допустимый диапазон значений. PL/SQL предоставляет множество предопределенных типов данных.
Скалярный тип данных (scalar data type) содержит одно значение и не имеет внутренних компонентов. Скалярные типы данных делятся на четыре категории:
- Числовые
- Символьные
- Даты
- Логические данные.
Символьный и числовой типы данных имеют подтипы, которые налагают определенные ограничения на базовый тип. Например, INTEGER (“целое число”) и POSITIVE (“положительное число”) являются подтипами базового типа NUMBER.
Числовые: |
|
NUMBER [(точность, масштаб)] |
Числа с точность и масштабом. Точность в диапазоне от 1 до 38, а масштаб – от -84 до 127 |
BINARY_INTEGER |
Основной тип для целых числе от - 2 147 483 647 до 2 147 483 647 |
PLS_INTEGER |
Основной тип для целых числе со знаком - 2 147 483 647 до 2 147 483 647. Значение PLS_INTEGER требуют меньше памяти и быстрее значений NUMBER и BINARY_INTEGER. Арифметические операции на значениями типа PLS_INTEGER быстрее, чем над данными NUMBER |
Символьные: |
|
CHAR [ (Максимальная_Длина)] |
Основной тип для символьных данных постоянной длины до 32768 байтов. Если максимальная длина не задана, то по умолчанию она равна 1. |
VARCHAR2 (Максимальная_Длина) |
Основной тип для символьных данных переменной длины до 32767 байтов. Для переменных и констант типа VARCHAR2 размера по умолчанию не существует. |
Даты: |
|
DATE |
Основной тип для дат и времени. Значение DATE включают время в секундах с полуночи. Дипозон дат: 4712 г. До.н.э – 9999 н.э. |
TIMESTAMP [(точность)] |
Расширяет тип данных DATE и хранит год, месяц, день, час, минуту, секунду и доли секунды. Для задания точности необходимо указывать целое литеральное значение в диопазоне от 0 до 9. Это число цифр в дробной части поля секунд. По умолчанию - 6 |
TIMESTAMP [(точность)] WITH TIME ZONE |
Расширяет тип данных TIMESTAMP и содержит смещение временной зоны. Смещение временной зоны представляет собой разницу в часах и минутах между местным временем и универсальным глобальным временем (Coordinated Universal Time или UTC). Для задания точности необходимо указывать целое литеральное значение в дипозоне от 0 до 9. Это число цифр в дробной части поля секунд. По умолчанию – 6 |
TIMESTAMP [(точность)] WITH LOCAL TIME ZONE |
Расширяет тип данных TIMESTAMP и содержит смещение временной зоны. Смещение временной зоны представляет собой разницу в часах и минута между местным временем и универсальным глобальным временем UTC.
В отличие от TIMESTAMP WITH TIME ZONE вставляемые в столбцы БД значения данного типа нормализуются в соответствии с временной зоной базы. Кроме того, смещение временной зоны не хранится в столбце. При извлечении значения из базы данных Oracle преобразует его к временной зоне сеанса.
|
INTERVAL YEAR [(точность)] TO MONTH |
Используется для хранения и манипулирования интервалами, содержащими годы и месяцы. Точность задает число цифр в поле лет. Нельзя использовать символические константы или переменные для задания точности; Необходимо указать целое литеральное значение в диапазоне от 0 до 4. По умолчанию - 2 |
INTERVAL DAY [(точность1)] TO SECOND [(точность1)] |
Используется для хранения и манипулирования интервалами, содержащими дни, часы, минуты и секунды. Точность 1 и Точность 2 определяют соответственно число цифр в поле дней и точность в поле секунд. В обоих случаях нельзя использовать символические константы или переменные для задания точности; Необходимо указать целое литеральное значение в диапазоне от 0 до 9. Значения по умолчанию соответственно -2 и 6 |
Логические: |
|
BOOLEAN |
Основной тип для хранения значений, используемых в логических вычислениях: True (истинно), False(ложно) или NULL (не определено). |