Поиск подстроки
Синтаксис
instr(< строка >,< подстрока > [,< начало поиска > [,< номер вхождения >]])
< строка >
– выражение типа CHAR, VARCHAR;
< подстрока >
– выражение типа CHAR, VARCHAR;
< начало поиска >
– целое положительное число;
< номер вхождения >
– целое положительное число.
Описание
Функция выполняет поиск подстроки в строке, начиная с заданной позиции и с учетом указанного номера вхождения.
Типы данных < строки >
и < подстроки >
должны быть приводимыми.
Длина < подстроки >
не должна быть более 4000.
< Начало поиска >
задает начальную позицию для поиска < подстроки >
. Отсчет начинается с единицы. Если < начало поиска >
не задано, по умолчанию принимается значение 1.
< Номер вхождения >
задает порядковый номер искомой подстроки. Отсчет начинается с единицы. Если < номер вхождения >
не задан, по умолчанию принимается значение 1.
Возвращаемое значение
-
Номер позиции, в которой размещается найденная в
< строке >
заданная< подстрока >
, или 0, если< строка >
имеет нулевую длину, если< подстрока >
не найдена, или входные параметры имеют логически недопустимые значения. -
Информация о недопустимых значениях входных параметров не возвращается.
-
Тип возвращаемого значения – INT.
-
Если
< строка >
имеет 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.