Поиск подстроки
Синтаксис
 
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.