INSTR (Dansk)
Syntaks
Beskrivelse af illustration instr.gif
Formål
INSTR
funktionssøgning string
efter substring
. Funktionen returnerer et heltal, der angiver placeringen af tegnet i string
, der er det første tegn i denne begivenhed. INSTR
beregner strenge ved hjælp af tegn som defineret af inputtegnsættet. INSTRB
bruger byte i stedet for tegn. INSTRC
bruger Unicode-komplette tegn. INSTR2
bruger UCS2-kodepunkter. INSTR4
bruger UCS4-kodepunkter.
-
position
er et ikke-nul heltal, der angiver karakteren afstring
hvor Oracle Database begynder søgningen. Hvisposition
er negativ, tæller Oracle baglæns fra slutningen afstring
og søger derefter baglæns fra den resulterende position. -
occurrence
er et heltal, der angiver hvilken forekomst afstring
Oracle skal søge efter. Værdien afoccurrence
skal være positiv.
Både string
og substring
kan være en hvilken som helst af datatyperne CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
eller NCLOB
. Den returnerede værdi er af NUMBER
datatype.
Både position
og occurrence
skal være af datatype NUMBER
eller en hvilken som helst datatype, der implicit kan konverteres til NUMBER
, og skal opløses til et heltal. Standardværdierne for både position
og occurrence
er 1, hvilket betyder, at Oracle begynder at søge på det første tegn i string
for den første forekomst af substring
. Returværdien er relativ til begyndelsen af string
uanset værdien af position
og udtrykkes med tegn. Hvis søgningen mislykkes (hvis substring
ikke vises occurrence
gange efter position
af string
), så er returværdien 0.
Se også:
Tabel 2-10, “Implicit Type Conversion Matrix” for mere information om implicit konvertering
Eksempler
Følgende eksempel søger i strengen CORPORATE
FLOOR
, der begynder med det tredje tegn, for strengen “OR
“. Den returnerer positionen i CORPORATE
FLOOR
hvor den anden forekomst af “OR
” begynder :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
I det næste eksempel tæller Oracle tilbage fra det sidste tegn til det tredje tegn fra slutningen, hvilket er det første O
i FLOOR
. Oracle søger derefter bagud efter den anden forekomst af OR
og finder ud af, at denne anden forekomst begynder med det andet tegn i søgestrengen:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
Det næste eksempel antager et databytes-tegnsæt med dobbelt byte.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27