Поиск подстроки
Синтаксис
 
instr(< строка >,< подстрока > [,< начало поиска > [,< номер вхождения >]])

< строка > – выражение типа CHAR, VARCHAR;

< подстрока > – выражение типа CHAR, VARCHAR;

< начало поиска > – целое положительное число;

< номер вхождения > – целое положительное число.

Описание

Функция выполняет поиск подстроки в строке, начиная с заданной позиции и с учетом указанного номера вхождения.

Типы данных < строки > и < подстроки > должны быть приводимыми.

Длина < подстроки > не должна быть более 4000.

< Начало поиска > задает начальную позицию для поиска < подстроки >. Отсчет начинается с единицы. Если < начало поиска > не задано, по умолчанию принимается значение 1.

< Номер вхождения > задает порядковый номер искомой подстроки. Отсчет начинается с единицы. Если < номер вхождения > не задан, по умолчанию принимается значение 1.

Возвращаемое значение
  1. Номер позиции, в которой размещается найденная в < строке > заданная < подстрока >, или 0, если < строка > имеет нулевую длину, если < подстрока > не найдена, или входные параметры имеют логически недопустимые значения.

  2. Информация о недопустимых значениях входных параметров не возвращается.

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

  4. Если < строка > имеет NULL-значение, результат будет NULL.

Пример
create or replace procedure sp_test_instr() result int
declare
  var line char(50);
  var repeat int;
  var i int;
code
  line:="Реляционная СУБД - это СУБД, которая ...";
  repeat:=2;
  i:=instr(line,"СУ"+"БД",1,repeat); // 24
  return i;
end;
Результат: 24.