PLSQL | Функция INSTR

Опубликовано: 30 Ноября, 2021

Функция PLSQL INSTR используется для возврата местоположения подстроки в строке.
Функция PLSQL INSTR ищет в строке подстроку, указанную пользователем, используя символы, и возвращает позицию в строке, которая является первым символом указанного вхождения подстроки.
Функция PLSQL INSTR принимает четыре параметра: строка, подстрока, начальная позиция и n-е появление.
Строка и подстрока могут быть любого типа данных, например CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.

Синтаксис:

 INSTR (строка, подстрока [, начальная_позиция [, nth_appearance]])

Используемые параметры

  1. нить -
    Он используется для указания строки, в которой нужно искать подстроку. Это может быть любой из типов данных CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
  2. подстрока -
    Он используется для указания подстроки, в которой необходимо выполнить поиск. Это может быть любой из типов данных CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
  3. start_position -
    Это необязательный параметр, который используется для указания позиции в строке, с которой будет начинаться поиск. Значение по умолчанию - 1. Функция INSTR отсчитывает до start_position количество символов от конца строки, а затем выполняет поиск в направлении начала строки, если вставленное значение отрицательное.
  4. n-е появление -
    Это необязательный параметр, который используется для указания n-го появления подстроки. Значение по умолчанию - 1.

Поддерживаемые версии Oracle / PLSQL:

  1. Оракул 12c
  2. Oracle 11g
  3. Oracle 10g
  4. Oracle 9i
  5. Oracle 8i

Пример-1: Использование символа для поиска вперед, чтобы найти позицию подстроки.

ЗАЯВИТЬ 
   Test_String string (20): = 'Geeksforgeeks';
   
   
НАЧИНАТЬ 
   dbms_output.put_line (INSTR (Test_String, 'e')); 
   
КОНЕЦ;

Выход:

 2



Пример-2: Использование позиции символа для поиска вперед, чтобы найти позицию подстроки.

 ЗАЯВИТЬ 
   Test_String string (20): = 'Geeksforgeeks';
      
НАЧИНАТЬ 
   dbms_output.put_line (INSTR (Test_String, 'e', 1, 1)); 
   
КОНЕЦ;

Выход:

 2



Пример-3: Использование позиции символа для поиска вперед, чтобы найти позицию подстроки в 3-й позиции.

 ЗАЯВИТЬ 
   Test_String string (20): = 'Geeksforgeeks';
   
НАЧИНАТЬ 
   dbms_output.put_line (INSTR (Test_String, 'e', 1, 3)); 
   
КОНЕЦ;

Выход:

 10



Пример-4: Использование позиции символа для поиска в обратном направлении, чтобы найти позицию подстроки.

 ЗАЯВИТЬ 
   Test_String string (20): = 'Geeksforgeeks';
   
НАЧИНАТЬ 
   dbms_output.put_line (INSTR (Test_String, 'e', -2, 1)); 
   
КОНЕЦ;

Выход:

 11



Пример 5: Использование трехбайтового набора символов для поиска позиции подстроки.

 ЗАЯВИТЬ 
   Test_String string (20): = 'Geeksforgeeks';
   
НАЧИНАТЬ 
   dbms_output.put_line (INSTR (Test_String, 'for', 1, 1)); 
   
КОНЕЦ;

Выход:

 6
SQL