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.
-
positioner et ikke-heltall som indikerer tegnet tilstringder Oracle Database begynner søket. Hvispositioner negativ, teller Oracle bakover fra slutten avstringog søker deretter bakover fra den resulterende posisjonen. -
occurrenceer et heltall som indikerer hvilken forekomst avstringOracle skal søke etter. Verdien tiloccurrencemå 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