Oracle INSTR() Function
Oracle INSTR() is a built-in function that searches for a substring in a given string and returns an integer that represents the index position of the string.
Oracle INSTR() performs a case-sensitive search.
Oracle has several similar functions, but they calculate position in different ways:
INSTRuses character-defined positions as defined by the input character set, with the position of the first character being 1.INSTRBuses byte rather than character-defined positions.INSTRCuses Unicode complete character-defined positions.INSTR2uses UCS2 code point-defined positions.INSTR4uses UCS4 code point-defined positions.
If you need to match based on a regular expression pattern, use REGEXP_INSTR().
Oracle INSTR() Syntax
Here is the syntax for the Oracle INSTR() function:
INSTR(string , substring [, position [, occurrence ] ])
Parameters
string-
Required. The string to search within. It can be of type
CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, orNCLOB. substring-
Required. The substring to search for. It can be of type
CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, orNCLOB. position-
Optional. It is a nonzero integer that indicates the starting index position for the search. If
positionis negative, Oracle counts backward from the end of thestring, then searches forward from the resulting position. It starts at 1. occurrence-
Optional. It is an integer that indicates which occurrence of the search string to search for.
Return Value
The Oracle INSTR() function returns an integer that is the index position of the substring substring within the string string.
If the given substring is not found in the given string, INSTR() returns 0.
If any argument is NULL, INSTR() returns NULL.
Oracle INSTR() Examples
Here are several examples demonstrating the usage of the Oracle INSTR() function.
Basic Usage
The following statement searches for l in Hello World:
SELECT
INSTR('Hello World', 'l') Result
FROM dual;
Output:
RESULT
_________
3In this example, l is the 3rd character in Hello World, so it returns 3.
Starting Position
The Oracle INSTR() function allows you to specify the starting position for the search:
SELECT
INSTR('Hello World', 'l', 4) Result
FROM dual;
Output:
RESULT
_________
4In this example, we indicate to start the search from the 4th character using the position parameter.
Nth Occurrence
The Oracle INSTR() function allows you to specify which occurrence of the substring to search for:
SELECT
INSTR('Hello World', 'l', 1,1) Result1,
INSTR('Hello World', 'l', 1,2) Result2,
INSTR('Hello World', 'l', 1,3) Result3
FROM dual;
Output:
RESULT1 RESULT2 RESULT3
__________ __________ __________
3 4 10Not Found
If the given substring cannot be found in the given string, INSTR() will return 0.
SELECT
INSTR('Hello World', 'x') Result1,
INSTR('Hello World', 'l', 20) Result2
FROM dual;
Output:
RESULT1 RESULT2
__________ __________
0 0In this example, although l is contained in Hello World, INSTR('Hello World', 'l', 20) returns 0 because the starting position is 20.
NULL Parameters
If any parameter is NULL, the function will return NULL.
SET NULL 'NULL';
SELECT
INSTR(NULL, 'A') null1,
INSTR('A', NULL) null2,
INSTR('A', 'A', NULL) null3,
INSTR('A', 'A', 1, NULL) null4
FROM dual;
Output:
NULL1 NULL2 NULL3 NULL4
________ ________ ________ ________
NULL NULL NULL NULLIn this example, we use the SET NULL 'NULL'; statement to display NULL values as the string 'NULL'.
Conclusion
The Oracle INSTR() is a built-in function that searches for a substring in a given string and returns an integer representing the index position of the string.