пятница, 14 января 2011 г.

Типы данных CHAR и VARCHAR2

Пятого января я, можно сказать, анонсировал целую серию статей, посвященных символьным типам данных языка PL/SQL. Там я описал, какие именно символьные типы данных есть в языке и какие темы мы будем изучать в самое ближайшее будущее. Сейчас я напомню эти темы, и мы начнем знакомиться с первой:
  • -        Типы данных CHAR и VARCHAR2
  • -        Тип данных RAW
  • -        Типы данных NCHAR и NVARCHAR2
  • -        Типы данных LONG и LONG RAW
  • -        Типы данных ROWID и UROWID
Тип данных CHAR:

Синтаксис у него очень простой:

CHAR(n)

n – это размерность (в байтах). Это число не обязательно указывать, так как (если ее нету) то будет использоваться значение по умолчанию – единица. Так что можно просто написать CHAR – даже скобок ставить не нужно.

Переменные типа CHAR имеют фиксированную длину, поэтому при необходимости они заполняются до максимальной длины пробелами. В результате – переменные типа CHAR не всегда будут совпадать при выполнении операций сравнения символов (как уже было сказано – на конце могут стоять пробелы, а это – тоже символы).

Максимальная длина переменной типа CHAR равна (как мы уже знаем) – 32 767 байт. Максимальная же длина поля столбца базы данных, имеющего тип CHAR, составляет 255 байт. Таким образом, если в переменной CHAR содержится более 255 байт, ее можно ввести только в столбец типа VARCHAR2 или LONG. Аналогично, данные типа LONG можно выбрать в переменные типа CHAR только в том случае, если их размер составляет не более 32 676 байт.

К типу данных CHAR относятся подтипы: CHARACTER и STRING.

Тип данных VARCHAR2:

Этот тип аналогичен типу VARCHAR2, применяемому в базах данных. При помощи переменных типа VARCHAR2 можно хранить строки символов переменной длины (как мы помним из предыдущей статьи этой серии). Синтаксис объявления переменной, имеющий тип VARCHAR2 – такой:

VARCHAR2(n)

n – максимальная длина переменной. Указание длины обязательно, так как значений по умолчанию здесь не существует.

Максимальная длина переменной типа VARCHAR2 составляет 32 767 байт. Обратите внимание, что в поле столбца базы данных, имеющим тип VARCHAR2, можно хранить 2000 байт. Если длина переменной типа VARCHAR2 PL/SQL превышает этот размер, ее можно ввести лишь в столбец базы данных, имеющий тип LONG, максимальный размер которого составляет 2 Гб. Аналогично, данные типа LONG нельзя выбрать в переменную VARCHAR2, если их размер превышает 32 676 байт.

Для значений VARCHAR2 длина указывается не в символах, а в байтах. Реальная информация хранится в базе данных с помощью принятого набора символов, например – ASCII. Если в некотором наборе символов базы данных содержаться много байтовые символы, максимальное число символов, которые может храниться в переменной типа VARCHAR2, возможно, будет меньше указанной длины. Дело в том, что для представления одного символа может использоваться более одного байта.

К типу данных VARCHAR2 относятся подтипы: VARCHAR.

Все, пора остановиться на немного. Пойду поговорю с родителями и с друзьями. Они у меня в разных областях находятся, поэтому приходится с ними разговаривать с разных симок. Но ничего – я знаю, где продаются телефоны с двумя сим картами – купил себе один такой, так что с легкостью справляюсь с ситуацией.

2 комментария: