Функции для работы с BLOB-данными
С точки зрения поиска информации внутри BLOB-данных все возможные виды BLOB-данных (текст, графика, музыка, видеоизображение и т.п.) рассматриваются СУБД ЛИНТЕР одинаково – как набор слов.
Слово внутри BLOB-данных – это непрерывная последовательность из букв, цифр, знаков подчеркивания и дефисов длиной не более 239 знаков, все остальные знаки, встреченные в BLOB-значении (пробелы, знаки табуляции, графические символы и др.), считаются разделителями и в поиске не участвуют.
Более широкие возможности для работы с BLOB-данными, содержащими только текстовую информацию в различных форматах (DOC, PDF, RTF и т.д.), предоставляют средства полнотекстового поиска (см. документ «Полнотекстовый поиск в базе данных», раздел «Элементы языка»).
Еще один набор функций для работы с BLOB-данными предоставляет утилита inl (см. документ «Командный интерфейс», подраздел «Работа с BLOB-данными»):
blob {insert | clear | append | get} {rowid=< rowid записи > < имя схемы >.< имя таблицы >.< имя столбца > |column=< номер столбца >} {file=< имя файла > |< BLOB-данные >};
Например,
username SYSTEM/MANAGER8 create or replace table test(i int, bl1 blob, bl2 blob); insert into test(i,bl1,bl2) values(1,NULL,NULL); blob insert column=2 333333ABCD; blob append column=3 444444ABCD;
Пример
Пусть в качестве BLOB-данных записан следующий текст:
SELECT $$$S34,$$$S13 FROM $$$SYSRL,$$$USR WHERE $$$S12 =$$$S31 AND $$$S32 =0 AND ACCESS(USER,$$$S11) < > '------';
Этот текст содержит следующий набор слов (с точки зрения функций BLOB):
SELECT S34 S13 FROM SYSRL USR WHERE S12 S31 AND S32 0 ACCESS USER S11
Присутствующие в BLOB-значении символы «$», «,», «=», «)», «(», «< », « >», «'» не являются элементами слов и интерпретируются как разделители.
Каждое слово BLOB-значения имеет смещение – номер (от начала BLOB-значения) первого байта (знака) слова. Смещения начинаются с нуля.
- Определение числа слов BLOB-значения
- Поиск слова
- Поиск слова в текстовых BLOB-данных
- Местоположение искомых элементов текста
- Выборка текста
- Дать порцию BLOB-значения
- Дать порцию BLOB-значения в текстовом виде
- Определение длины BLOB-значения
- Модификация подстроки BLOB-данных
- Модификация подстрок BLOB-данных