INSTR
Syntaxis
Beschrijving van de illustratie instr.gif
Doel
De INSTR functies zoeken string naar substring. De functie retourneert een geheel getal dat de positie aangeeft van het teken in string dat het eerste teken van deze instantie is. INSTR berekent strings met behulp van tekens zoals gedefinieerd door de invoertekenset. INSTRB gebruikt bytes in plaats van tekens. INSTRC gebruikt volledige Unicode-tekens. INSTR2 gebruikt UCS2-codepunten. INSTR4 gebruikt UCS4-codepunten.
-
positionis een geheel getal dat niet nul is en het teken aangeeft vanstringwaar Oracle Database begint met zoeken. Alspositionnegatief is, telt Oracle terug vanaf het einde vanstringen zoekt dan achteruit vanaf de resulterende positie. -
occurrenceis een geheel getal dat aangeeft naar welke instantie vanstringOracle moet zoeken. De waarde vanoccurrencemoet positief zijn.
Zowel string als substring kan elk van de gegevenstypen zijn CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, of NCLOB. De geretourneerde waarde is van NUMBER datatype.
Zowel position als occurrence moet van datatype NUMBER zijn, of een datatype dat impliciet kan worden geconverteerd naar NUMBER, en moet worden omgezet in een geheel getal. De standaardwaarden van position en occurrence zijn 1, wat betekent dat Oracle begint te zoeken bij het eerste teken van string voor de eerste keer dat substring voorkomt. De geretourneerde waarde is relatief ten opzichte van het begin van string, ongeacht de waarde van position, en wordt uitgedrukt in tekens. Als de zoekopdracht niet succesvol is (als substring niet occurrence keer na het position teken van string), dan is de geretourneerde waarde 0.
Zie ook:
Tabel 2-10, “Impliciete typeconversiematrix” voor meer informatie over impliciete conversie
Voorbeelden
In het volgende voorbeeld wordt gezocht in de tekenreeks CORPORATE FLOOR, beginnend met het derde teken, voor de tekenreeks “OR“. Het geeft de positie terug in CORPORATE FLOOR waarop het tweede exemplaar van “OR” begint :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
In het volgende voorbeeld telt Oracle terug vanaf het laatste teken naar het derde teken vanaf het einde, wat het eerste in FLOOR. Oracle zoekt vervolgens achteruit naar de tweede instantie van OR, en vindt dat deze tweede instantie begint met het tweede teken in de zoekreeks:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
In het volgende voorbeeld wordt uitgegaan van een dubbelbyte databasetekenset.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27