INSTR (Svenska)
Syntax
Beskrivning av illustration instr.gif
Syfte
INSTR
funktionssök string
efter substring
. Funktionen returnerar ett heltal som anger karaktärens position i string
som är det första tecknet i denna händelse. INSTR
beräknar strängar med hjälp av tecken som definieras av ingångsteckenuppsättningen. INSTRB
använder byte istället för tecken. INSTRC
använder Unicode-kompletta tecken. INSTR2
använder UCS2-kodpunkter. INSTR4
använder UCS4-kodpunkter.
-
position
är ett icke-noll heltal som anger karaktären påstring
där Oracle Database börjar sökningen. Omposition
är negativ, räknar Oracle bakåt från slutet avstring
och söker sedan bakåt från den resulterande positionen. -
occurrence
är ett heltal som anger vilken förekomst avstring
Oracle ska söka efter. Värdet föroccurrence
måste vara positivt.
Både string
och substring
kan vara vilken datatyp som helst CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
eller NCLOB
. Det returnerade värdet är av NUMBER
datatyp.
Både position
och occurrence
måste ha datatyp NUMBER
, eller vilken datatyp som helst som implicit kan konverteras till NUMBER
, och måste lösa till ett heltal. Standardvärdena för både position
och occurrence
är 1, vilket innebär att Oracle börjar söka efter det första tecknet i string
för den första förekomsten av substring
. Returvärdet är relativt början på string
, oavsett värdet på position
, och uttrycks i tecken. Om sökningen misslyckas (om substring
inte visas occurrence
gånger efter position
av string
), då är returvärdet 0.
Se även:
Tabell 2-10, ”Implicit typomvandlingsmatris” för mer information om implicit omvandling
Exempel
Följande exempel söker i strängen CORPORATE
FLOOR
, börjar med det tredje tecknet, för strängen ”OR
”. Den returnerar positionen i CORPORATE
FLOOR
där den andra förekomsten av ”OR
” börjar :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
I nästa exempel räknas Oracle bakåt från det sista tecknet till det tredje tecknet från slutet, vilket är det första O
i FLOOR
. Oracle söker sedan bakåt efter den andra förekomsten av OR
och finner att den andra förekomsten börjar med det andra tecknet i söksträngen:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
Nästa exempel förutsätter en databas-teckenuppsättning med dubbla byte.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27