Некоторые из этих ограничений помогает побороть опция сервера Oracle под названием ConText. Она позволяет производить поиск по "длинным" столбцам. Тем не менее, даже в OracleS существует масса ограничений для типов LONG и LONG RAW. Вместо того чтобы попытаться исправить недостатки существующих "длинных" типов данных (для чего потребовалось бы внести изменения, которые повлияли бы на существующие программы), Oracle решила создать совершенно новое семейство типов данных, называемое LOB.
Что такое LOB?
OracleS поддерживает новый тип объектов, который называется большой объект или LOB. Этот тип предназначен для хранения неструктурированных данных. Существует четыре основных LOB-типа данных:
BFILE
LOB, содержимое которого хранится не в базе данных, а во внешнем файле.
BLOB
LOB, содержащий неструктурированные или двоичные данные.
CLOB
LOB, содержащий однобайтные символьные данные.
NCLOB
LOB, содержащий многобайтные символьные данные (например, символы из национальных кодовых наборов). Отметим, что в NCLOB нельзя помещать символы национальных кодовых наборов, основанных на переменной длине представления символов.
Каждый экземпляр LOB может содержать до 4 Гб данных. Манипуляция LOB-данными производится двумя способами:
•    посредством пакета PL/SQL, который называется DBMS_LOB;
•    с помощью ряда API-вызовов из интерфейса OCI (Oracle Call Interface).
В PL/SQL8 также имеется набор внутренних типов данных для поддержки LOB. Хотя SQL не может непосредственно манипулировать этими типами данных, они доступны из SQL через вызовы функций PL/SQL.
Различия между BFILE и другими LOB-типами данных проиллюстрированы на рис. 4.5.
72	Oracle 8