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