Семейство типов RAW

RAW - используется для хранения двоичных данных фиксированной длины. Синтаксис:

RAW(L) ,

где L — длина переменной в байтах. Тип RAW. В отличие от символьных данных типа CHAR, данные типа RAW не преобразуются из одного набора символов в другой при их передаче из одной базы данных в другую. Максимальная длина переменной RAW равна 32 767 байт. Максимальная же длина поля RAW базы данных составляет 2000 байт, поэтому, если размер данных превышает 2000 байт, они не могут быть введены в столбец RAW базы данных. Однако они могут быть введены в столбец базы данных, имеющий тип LONG RAW, максимальная длина которого составляет 2 Гбайт. Аналогично, если длина данных в поле LONG RAW превышает 32 767 байт, нельзя поместить их в PL/SOJL-переменную RAW.

 

LONG RAW- данные этого типа похожи на данные типа LONG, за исключением того, что в PL/SQL не происходит их преобразование из одного набора символов в другой. Максимальная длина переменной LONG RAW равна 32 760 байт. Максимальная длина поля LONG RAW базы данных составляет 2 Гбайт, поэтому, если фактический размер данных превышает 32 760 байт, поместить их в PL/SQL-переменную LONG RAW нельзя. Но максимальная длина PL/SQL-переменной LONG RAW вполне подходит для ее ввода в поле LONG RAW базы данных, поэтому ограничений на ввод PL/SQL-переменных LONG RAW в поля LONG RAW базы данных не существует.

 

Семейство временных типов (дата/интервал)

DATE- используется для хранения информации о датах и о времени, в том числе о веке, годе, месяце, дне, часах, минутах и секундах. Данные о долях секунд не хранятся. Данный тип PL/SQL абсолютно аналогичен типу DATE, применяемому в базах данных. Тип DATE Внутренний размер переменной DATE составляет 7 байт, по одному байту на каждый компонент (от века до секунды).

Переменной DATE можно присвоить значение символьной переменной либо другой переменной DATE. Символьные переменные неявно преобразуются в даты с помощью используемого по умолчанию формата даты для текущего сеанса. Для дополнительного управления лучше применять встроенную функцию TO_DATE для присваивания значений и функцию TO_CHAR для их извлечения.

 

TIMESTAMP- аналогичен типу DATE в том смысле, что содержит год, месяц, день, час, минуту и секунду некоторого момента времени. Однако отметки времени могут хранить доли секунды. Синтаксис:

TIMESTAMP [(P)]

где Р является точностью дробной части поля секунд, по умолчанию используется 6.

TIMESTAMP [(P)] WITH TIME ZONE - содержит также определенный часовой пояс в дополнение к данным отметки времени.

TIMESTAMP [(P)] WITH LOCAL TIME ZONE - всегда хранит часовой пояс базы данных, независимо от часового пояса пользователя.

 

INTERVAL- служит для хранения интервала времени между двумя отметками времени.

INTERVAL YEAR [(P)] TO MONTH - хранит число лет и месяцев, Р — число цифр в поле года, которое по умолчанию равно 2.

INTERVAL DAY[(Z>P)] TO SECOND[(SP)] - содержит число дней и секунд. DP - число цифр в поле дня (по умолчанию - 2), a SP—число цифр в дробной части поля секунд (по умолчанию - 6).