Доступные версии документации

Поиск слова в текстовых BLOB-данных

Функция

Поиск слова, соответствующего заданному шаблону, в текстовых BLOB-данных.

Поиск выполняется в BLOB-данных в форматах RTF, PDF, DOC, XLS, PPT и PS.

Спецификация
 
Синтаксические правила
  1. <Имя столбца> должно соответствовать столбцу с BLOB-данными.

  2. <Шаблон поиска> может содержать стандартные специальные символы: подчеркивание «_» представляет собой указатель на произвольный символ, процент «%» – указатель на подстроку (возможно, пустую).

  3. В качестве <шаблона поиска> можно использовать <UNICODE-литерал>.

  4. Поиск выполняется во всех BLOB-значениях, получаемых в <запросе выборки>.

  5. <Числовое выражение> в параметре <номер вхождения> – целое неотрицательное (больше нуля) значение типа INTEGER, задающее порядковый номер слова, которое должно быть найдено.

  6. Аргументы <шаблон поиска> и <номер вхождения> могут быть заданы <SQL-параметром>, который должен содержать спецификацию типа данных параметра.

    Например,

    Файл text.rtf:
    ЛИНТЕР: назначение и основные возможности
    ЛИНТЕР – это мощная система управления базами данных (СУБД).
    
    create or replace  table tst (i int, bl blob);
    insert into tst(i,bl) values(1,NULL);
    blob insert column=2 file=text.rtf;
    select findrtf(bl,'%ЛИН%', 2) from tst;
    select findrtf(bl,? (char(10)), ?(int)) from tst;
    %ЛИН%
    2
    |         43|
Возвращаемое значение
  1. Если BLOB-данные представлены в формате RTF (в соответствии со спецификацией формата RTF это определяется по наличию префикса ({/rtf в начале BLOB-данных)), то сначала осуществляется декодирование символов кириллицы (символы латиницы в RTF не кодируются), а затем поиск нужной строки.

  2. Если BLOB-данные представлены не в форматах PDF, DOC, XLS, PPT и PS, функция выполняется как FINDBLOB.

  3. Возвращается смещение найденного слова или 0, если все слова BLOB-значения не соответствуют шаблону. Смещение начинается с 1.

  4. Тип возвращаемого значения – INT.

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter