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.
-
positionist eine Ganzzahl ungleich Null, die das Zeichen von angibtstringwo Oracle Database die Suche beginnt. Wennpositionnegativ ist, zählt Oracle ab dem Ende vonstringrückwärts und sucht dann von der resultierenden Position aus rückwärts. -
occurrenceist eine Ganzzahl, die angibt, nach welchem Vorkommen vonstringOracle gesucht werden soll. Der Wert vonoccurrencemuss 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