Выбрать главу

чем массивы переменной длины, в которых элементы можно

модифицировать только как единое целое, а не индивидуально.

У вложенной таблицы нет максимального размера, в нее можно записать

произвольное количество элементов.

■ Ассоциативный массив представляет собой множество пар ключей и

значений. Значение из массива можно получить, используя ключ (который

может быть строкой) или целое число, определяющее положение

этого значения в массиве. Ассоциативный массив похож на

хешированную таблицу в таких языках программирования, как Java.

■ Коллекции могут сами содержать встроенные коллекции. Такие коллекции

называются многоуровневыми коллекциями.

В следующей главе вы ознакомитесь с большими объектами.

Глава 14

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

Знакомство с большими объектами (L0B)

Современные приложения и Web-сайты требуют для своей работы не только

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

мультимедийных средств. В силу этого, сегодняшние базы данных используются

для хранения таких объектов, как изображение, звук и видео. До

появления версии Огас1е8 для хранения больших блоков символьных данных

нужно было использовать тип базы данных LONG, а для хранения больших

блоков двоичной информации - либо LONG RAW, либо более короткий

тип RAW. __ .

После выпуска версии Огас1е8 появился новый класс типов, известный

как большие объекты (Large Objects - LOB). LOB можно использовать для

хранения двоичных данных, символьных данных, а также ссылок на внешние

файлы. Двоичные данные могут содержать изображения, музыку, видео,

документы, исполняемые файлы и т.п. В зависимости от размера блока

вашей базы данных в L0B можно хранить до 128 терабайт данных.

Файлы примеров

В примерах будут использоваться следующие два файла:

■ textContent.txt Текстовый (ASCII) файл;

■ binaryContent.doc Файл Word 2000.

Примечание Эти файлы содержатся в каталоге samplejiles, который будет создан при извлечении

файлов примера из Zip-файла для этой книги. Если вы хотите исполнять примеры по

ходу главы, скопируйте папку samplejiles в раздел С вашего сервера базы данных. Если вы

используете Linux или Unix, вы можете скопировать папку в один из своих разделов.

В файле textContent.txt содержится выдержка из пьесы Шекспира

“Макбет”. Ниже приводится монолог Макбета, произнесенный им незадолго

до того, как его убили:

To-morrow, and to-morrow, and to-morrow,

Creeps in this petty pace from day to day,

To the last syllable of recorded time;

And all our yesterdays have lasted fools

The way to the dusty death. Out, out brief candle!

Life's but a walking shadow; a poor player,

That struts and frets his hour upon the stage,

And then is heard no more; it is a tale

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

Told by an idiot, fu ll of sound and fury,

Signifying nothing.

(Она могла бы умереть и позже:

Всегда б прийти успела эта весть.

Да, завтра, завтра - и все то же завтра

Скользит невидимо со дня на день

И по складам отсчитывает время;

А все вчера глупцам лишь озаряли

Дорогу в гроб. Так догорай, огарок!

Что жизнь ? - Тень мимолетная, фигляр,

Неистово шумящий на подмостках

И через час забытый всеми; сказка

В устах глупца, богатая словами

И звоном фраз, но нищая значеньем!)

Перевод А. Кронеберга

Файл binaryContent.doc является документом в формате Word, в котором

находится то же самое, что и в файле textContent.txt. (Документ Word

является двоичным файлом.) Хотя в примерах используется документ

Word, вы можете использовать любые двоичные файлы, например, MP3,

DivX, JPEG, MPEG, PDF или EXE. Я проверил примеры со всеми этими

типами файлов.

Типы больших объектов

Есть четыре типа L0B:

■ CL0B Символьный тип L0B, который используется для хранения символьных

данных.

■ NCL0B Тип L0B для хранения символов национальных языков, который

используется для хранения многобайтных символьных данных

(обычно используется для неанглийских символов). Вы можете получить

все сведения о неанглийских наборах символов в руководстве

Oracle Database Globalization Support Guide, опубликованным корпорацией

Oracle.

■ BLOB Тип двоичного LOB, используемый для хранения двоичных данных.

■ BFILE Двоичный тип FILE, используемый для хранения указателей

(pointers) на файлы, размещенные в файловой системе, т. е. вне базы

данных. Эти внешние файлы могут быть записаны на жестком диске,

на CD, на DVD или на любом другом устройстве, которое является доступным

через файловую систему сервера базы данных. Сам файл никогда

не хранится в базе данных, хранится только указатель на него.