К наиболее часто используемым типам данных относятся символьные, числовые, тип DATE, двоичные и большие объекты.
Символьныетипы данных представлены следующими типами:
CHAR(длина), VARCHAR2(длина) и LONG.
Тип данных CHAR представляет собой символьные строки фиксированной длины. Минимальная длина равна 1, максимальная – 2000 байт. Если значение, помещаемое в столбец данного типа, превосходит указанный размер, то выводится сообщение об ошибке; если длина помещаемого значения меньше указанной длины, то значение дополняется пробелами справа.
Тип данных VARCHAR2 представляет собой символьные строки переменной длины. Максимальный размер строки 4000 байт, минимальный – 1 байт. При помещении текста в столбец большего размера дополнение пробелами не производится.
Строки этих двух типов сравниваются по-разному. Строки типа CHAR – посимвольно с дополнением пробелами строки с меньшей длиной до размера строки с большей длиной. Строки VARCHAR2 – без дополнения пробелами до большей длины. Поэтому для двух в принципе одинаковых строк могут быть получены различные результаты при их сравнении.
Пример. Для двух строк “AB” и “AB ” (вторая строка содержит пробел, а первая нет) типа CHAR получим, что “AB” = “AB ”. Для этих же строк типа VARCHAR2 результатом сравнения будет “AB” < “AB ”.
Тип данных LONG представляет собой символьные данные переменной длины, величина которой может достигать 2 Гб. На использование переменных этого типа накладывается ряд ограничений: столбец такого типа должен быть единственным в таблице, его нельзя индексировать, использовать в качестве ключа упорядочения и в операциях группирования, а также для построения условий.
Числовыетипы представлены типом NUMBER, который позволяет определить три различных типа данных:
NUMBER, NUMBER(p), NUMBER(p, s).
В первом случае определяются действительные числа, диапазон которых от 1.0*10–130 до 1.0*10126–1, мантисса содержит 38 знаков. Во втором случае считается, что определяется диапазон целых чисел, где p – количество цифр в числе (от 1 до 38). В третьем случае описываются числа с фиксированной точкой; p – общее количество цифр (от 1 до 38), s – масштаб (от –84 до 127) – определяет количество цифр после запятой. Если s > 0, то число округляется до указанного числа знаков справа от десятичной точки, если s < 0, то число округляется до указанного числа знаков слева от десятичной точки.
Пример. Значение 123.89, помещенное в переменную с типом NUMBER(5,1) будет округлено до значения 123.9, а при помещении в переменную с типом NUMBER(5, –1) будет округлено до 120.
Следует отметить, что язык SQL поддерживает типы данных стандарта ANSI SQL. Если такой тип данных (INTEGER, SMALLINT, DECIMAL, FLOAT и REAL и т. д.) встречаются при определении типа столбца таблицы, то имя типа сохраняется, но сами данные хранятся в виде, определяемом одним из типов базы данных Oracle.
Тип данных DATEпредставляет собой специальным образом организованный тип. Он хранит столетие, год, месяц, день, часы, минуты, секунды. Для выборки текущего дня и времени в стандартном формате используется функция SYSDATE. Стандартный формат даты, автоматически преобразуемый во внутреннее представление, записывается символьной строкой следующего вида: 'DD–MON–YY', где DD – день месяца, MON – краткое название месяца, а YY – значение года.
Пример. Строка символов '11–JAN–04' будет представлять дату 11 января 2004 года.
Над переменными типа DATE можно выполнить арифметическое действие – вычитание. Результат операции определяет количество дней между этими двумя датами. К дате можно прибавить или отнять числовую константу, рассматриваемую как количество дней или часть дня.
Пример. Для добавления месяца к текущей дате необходимо записать SYSDATE+30, а для добавления часа необходимо записать SYSDATE+1/24.
Двоичные типы данных.Данные этого типа используются для хранения двоичных неструктурированных данных (звуковые файлы, файлы изображений и т. д.), обработка которых не поддерживается системой ORACLE. К ним относятся типы RAW(длина) и LONGRAW. Максимальный размер строки типа RAW 2000 байт, минимальный – 1 байт. Длина переменных типа LONGRAW может достигать 2 Гб.
Большие объекты (LOB-объекты). К этим типам относятся CLOB, BLOB и BFILE и предназначены они для хранения неструктурированных данных большого объема – до 4 Гб. Тип CLOB хранит данные символьного типа, типы BLOB и BFILE используют для хранения двоичных данных. Столбцы типа LOB содержат не сами данные, а указатели на их местоположение. При этом, типы CLOB и BLOB хранятся в специальных сегментах БД, а тип BFILE, являющийся внешним двоичным файлом, хранится как обычный файл. На их использование наложен ряд ограничений.