INSTR (Deutsch)
Syntax
Beschreibung der illustration instr.gif
Zweck
Die Funktionen INSTR
suchen string
nach substring
. Die Funktion gibt eine Ganzzahl zurück, die die Position des Zeichens in string
angibt, das das erste Zeichen dieses Vorkommens ist. INSTR
berechnet Zeichenfolgen anhand von Zeichen, die im Eingabezeichensatz definiert sind. INSTRB
verwendet Bytes anstelle von Zeichen. INSTRC
verwendet vollständige Unicode-Zeichen. INSTR2
verwendet UCS2-Codepunkte. INSTR4
verwendet UCS4-Codepunkte.
-
position
ist eine Ganzzahl ungleich Null, die das Zeichen von angibtstring
wo Oracle Database die Suche beginnt. Wennposition
negativ ist, zählt Oracle ab dem Ende vonstring
rückwärts und sucht dann von der resultierenden Position aus rückwärts. -
occurrence
ist eine Ganzzahl, die angibt, nach welchem Vorkommen vonstring
Oracle gesucht werden soll. Der Wert vonoccurrence
muss positiv sein.
Sowohl string
als auch substring
kann einer der Datentypen sein CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
oder NCLOB
. Der zurückgegebene Wert ist vom Datentyp NUMBER
.
Sowohl position
als auch occurrence
muss vom Datentyp NUMBER
oder von jedem Datentyp sein, der implizit in NUMBER
konvertiert werden kann, und muss in eine Ganzzahl aufgelöst werden. Die Standardwerte von position
und occurrence
sind 1, was bedeutet, dass Oracle mit der Suche nach dem ersten Zeichen von string
für das erste Auftreten von substring
. Der Rückgabewert ist relativ zum Anfang von string
, unabhängig vom Wert von position
, und wird in Zeichen ausgedrückt. Wenn die Suche nicht erfolgreich ist (wenn substring
nicht occurrence
mal nach dem Zeichen position
angezeigt wird von string
) ist der Rückgabewert 0.
Siehe auch:
Tabelle 2-10, „Implizite Typkonvertierungsmatrix“ Weitere Informationen zur impliziten Konvertierung
Beispiele
Im folgenden Beispiel wird die Zeichenfolge CORPORATE
FLOOR
, beginnend mit dem dritten Zeichen, für die Zeichenfolge „OR
„. Es gibt die Position in CORPORATE
FLOOR
zurück, an der das zweite Auftreten von „OR
“ beginnt :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
Im nächsten Beispiel zählt Oracle vom letzten Zeichen bis zum dritten Zeichen vom Ende rückwärts. Dies ist das erste O
in FLOOR
. Oracle sucht dann rückwärts nach dem zweiten Vorkommen von OR
und stellt fest, dass dieses zweite Vorkommen mit dem zweiten Zeichen in der Suchzeichenfolge beginnt:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
Im nächsten Beispiel wird ein Doppelbyte-Datenbankzeichensatz angenommen.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27