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ä.
-
positionon nollaton kokonaisluku, joka ilmaiseestringmistä Oracle Database aloittaa haun. Jospositionon negatiivinen, Oracle laskee taaksepäinstring-kohdan lopusta ja etsii sitten taaksepäin tuloksena olevasta sijainnista. -
occurrenceon 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