INSTR (Norsk)
Syntaks
Beskrivelse av illustrasjon instr.gif
Formål
INSTR
funksjoner søker string
etter substring
. Funksjonen returnerer et helt tall som indikerer posisjonen til tegnet i string
som er det første tegnet i denne hendelsen. INSTR
beregner strenger ved hjelp av tegn som definert av inngangstegnsettet. INSTRB
bruker byte i stedet for tegn. INSTRC
bruker Unicode-komplette tegn. INSTR2
bruker UCS2-kodepunkter. INSTR4
bruker UCS4-kodepunkter.
-
position
er et ikke-heltall som indikerer tegnet tilstring
der Oracle Database begynner søket. Hvisposition
er negativ, teller Oracle bakover fra slutten avstring
og søker deretter bakover fra den resulterende posisjonen. -
occurrence
er et heltall som indikerer hvilken forekomst avstring
Oracle skal søke etter. Verdien tiloccurrence
må være positiv.
Både string
og substring
kan være hvilken som helst av datatypene CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, eller NCLOB
. Verdien som returneres er av NUMBER
datatype.
Både position
og occurrence
må være av datatype NUMBER
, eller hvilken som helst datatype som implisitt kan konverteres til NUMBER
, og må løse til et heltall. Standardverdiene for både position
og occurrence
er 1, noe som betyr at Oracle begynner å søke på det første tegnet i string
for første forekomst av substring
. Returverdien er relativt til begynnelsen av string
, uavhengig av verdien til position
, og uttrykkes i tegn. Hvis søket mislykkes (hvis substring
ikke vises occurrence
ganger etter position
av string
), så er returverdien 0.
Se også:
Tabell 2-10, «Implisitt type konverteringsmatrise» for mer informasjon om implisitt konvertering
Eksempler
Følgende eksempel søker i strengen CORPORATE
FLOOR
, begynner med det tredje tegnet, for strengen «OR
«. Den returnerer posisjonen i CORPORATE
FLOOR
der den andre forekomsten av «OR
» begynner :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
I det neste eksemplet teller Oracle bakover fra siste tegn til tredje tegn fra slutten, som er det første O
i FLOOR
. Oracle søker deretter bakover for den andre forekomsten av OR
, og finner at denne andre forekomsten begynner med det andre tegnet i søkestrengen:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
Det neste eksemplet forutsetter et tegnsett med dobbeltbyte-databaser.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27