DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Большие объекты

Большой объект (LOB, large object) - это поле базы данных, которое содержит большой объем данных, таких как графический файл или длинный текстовый документ. Какой из типов данных Oracle лучше всего подходит для хранения информации такого вида? В Огас1е7 столбец VARCHAR2
способен хранить до 2000 байтов. Помимо ограничения на максимальный размер, столбец        может содержать только символьные данные, но не двоичные. Столбец LONG может содержать до 2 Гбайт и хранить символьные данные, a LONG RAW — двоичные данные. LONG и LONG RAW были в Oracle7 наиболее подходящими доступными типами данных для хранения информации LOB. Однако столбцы LONG и LONG RAW имеют много ограничений, включая и то, что в таблице базы дан­ных может быть только один столбец LONG или LONG RAW. Кроме того, единственным интерфейсом для манипуляции данными LONG и LONG RAW по частям является интерфейс Oracle Call, а извлечение по частям данных LONG осуществляется с помощью модуля IВМ        Работа с LONG или LONG DATA через другие интерфейсы требует, чтобы весь столбец содержался в одной переменной. В связи с этим и другими ограничениями ни один из типов данных Огас1е7 не предоставлял удов­летворительного решения для хранения LOB.
В Огас1е8 и выше доступны столбцы LONG и LONG RAW (с теми же ограничениями), а тип данных VARCHAR2 может содержать 4000 сим­волов. И все же эти типы данных не удобны для хранения больших объ­ектов. Чтобы делать это эффективно, Огас1е8 вводит новое семейство данных — семейство LOB. Существуют четыре различных вида LOB, ко­торые созданы для различных видов данных: CLOB, NCLOB, BLOB и BFILE 1см. таблицу 12.11.
Данные хранятся в базе данных, поэтому CLOB, NCLOB и BLOB в со­вокупности называются внутренними LOB. BFILE хранят данные вне базы данных и называются внешними LOB. LOB имеют следующие характеристики:
Максимальный размер LOB равен 4 Гбайт (LONG и LONG RAW в Oracle7 и Огас1е8 ограничены 2 Гбайт).
LOB можно обрабатывать с помощью различных интерфейсов, вклю­чая OCI Огас1е8 и модуль DBMSJLOB в PL/SQL. Все интерфейсы LOB предоставляют произвольный доступ к LOB для чтения и записи (за исключением BFILE, который предназначен только для чтения).
Многие ограничения на данные LONG и LONG RAW не действуют для LOB. Например, может существовать неограниченное число
столбцов LOB (до максимального числа столбцов) в заданной таблице
базы данных.
       Объекты могут иметь атрибуты LOB, и методы могут получать LOB в качестве аргументов. Однако объект не может иметь атрибут NCLOB, хотя метод может получать аргумент NCLOB.
       LOB могут использоваться как переменные привязки.
Внутренне LOB могут обрабатываться с помощью операторов SQL DML либо посредством одного из интерфейсов LOB. В любом случае су­ществует полная транзакционная поддержка и согласованность чтения, так же как и для данных, отличных от LOB.
 









jAntivirus