Поиск слова в текстовых BLOB-данных (FINDRTF)
Функция
Поиск слова, соответствующего заданному шаблону, в текстовых BLOB-данных.
Поиск выполняется в BLOB-данных в форматах RTF, PDF, DOC, XLS, PPT и PS.
Спецификация
::=Синтаксические правила
-
<Имя столбца>должно соответствовать столбцу с BLOB-данными. -
<Шаблон поиска>может содержать стандартные специальные символы: подчеркивание «_» представляет собой указатель на произвольный символ, процент «%» – указатель на подстроку (возможно, пустую). -
В качестве <шаблона поиска> можно использовать <UNICODE-литерал>.
-
Поиск выполняется во всех BLOB-значениях, получаемых в
<запросе выборки>. -
<Числовое выражение>в параметре<номер вхождения>– целое неотрицательное (больше нуля) значение типаINTEGER, задающее порядковый номер слова, которое должно быть найдено. -
Аргументы <шаблон поиска> и <номер вхождения> могут быть заданы <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|
Возвращаемое значение
-
Если BLOB-данные представлены в формате
RTF(в соответствии со спецификацией форматаRTFэто определяется по наличию префикса \rtf в начале BLOB-данных), то сначала осуществляется декодирование символов кириллицы (символы латиницы вRTFне кодируются), а затем поиск нужной строки. -
Если BLOB-данные представлены не в форматах
PDF,DOC,XLS,PPTиPS, функция выполняется какFINDBLOB. -
Возвращается смещение найденного слова или
0, если все слова BLOB-значения не соответствуют шаблону. Смещение начинается с1. -
Тип возвращаемого значения –
INT.