INSTR (Suomi)
Syntaksi
Kuvaus kuva instr.gif
Tarkoitus
INSTR
-toimintojen haku string
haulle substring
. Funktio palauttaa kokonaisluvun, joka osoittaa merkin sijainnin kohdassa string
, joka on tämän esiintymisen ensimmäinen merkki. INSTR
laskee merkkijonot käyttämällä merkkejä syötemerkkijoukon määrittelemällä tavalla. INSTRB
käyttää tavuja merkkien sijaan. INSTRC
käyttää kokonaisia Unicode-merkkejä. INSTR2
käyttää UCS2-koodipisteitä. INSTR4
käyttää UCS4-koodipisteitä.
-
position
on nollaton kokonaisluku, joka ilmaiseestring
mistä Oracle Database aloittaa haun. Josposition
on negatiivinen, Oracle laskee taaksepäinstring
-kohdan lopusta ja etsii sitten taaksepäin tuloksena olevasta sijainnista. -
occurrence
on kokonaisluku, joka osoittaa, mitästring
-tapahtumia Oraclen tulisi etsiä.occurrence
-arvon on oltava positiivinen.
Sekä string
että substring
voi olla mikä tahansa tietotyyppi CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
tai NCLOB
. Palautettu arvo on NUMBER
-tietotyyppi.
Sekä position
että occurrence
-tietotyypin on oltava NUMBER
tai mikä tahansa tietotyyppi, joka voidaan implisiittisesti muuntaa NUMBER
-iksi, ja sen on ratkaistava kokonaisluku. Sekä position
että occurrence
oletusarvot ovat 1, mikä tarkoittaa, että Oracle alkaa etsiä string
ensimmäiselle esiintymiselle substring
. Palautusarvo on suhteessa string
-alkuun, riippumatta position
-arvosta, ja se ilmaistaan merkkeinä. Jos haku epäonnistuu (jos substring
ei näy occurrence
kertaa position
-merkin jälkeen string
), palautusarvo on 0.
Katso myös:
Taulukko 2-10, ”implisiittisen tyypin muuntomatriisi” lisätietoja implisiittisestä muuntamisesta
Esimerkkejä
Seuraava esimerkki hakee merkkijonoa CORPORATE
FLOOR
, joka alkaa kolmannesta merkistä, merkkijonolle ”OR
”. Se palauttaa sijainnin kohdassa CORPORATE
FLOOR
, josta ”OR
” toinen esiintyminen alkaa. :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
Seuraavassa esimerkissä Oracle laskee taaksepäin viimeisestä merkistä loppuun kolmanneksi merkkiin, joka on ensimmäinen O
kohdassa FLOOR
. Oracle etsii sitten taaksepäin OR
-tapahtumaa ja huomaa, että tämä toinen esiintyminen alkaa hakumerkkijonon toisesta merkistä:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
Seuraava esimerkki olettaa kaksitavuisen tietokannan merkistön.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27