INSTR (Čeština)
Syntaxe
Popis illustration instr.gif
Účel
INSTR
funkce vyhledávají string
substring
. Funkce vrací celé číslo označující pozici znaku v string
, který je prvním znakem tohoto výskytu. INSTR
vypočítá řetězce pomocí znaků definovaných ve vstupní znakové sadě. INSTRB
používá místo znaků bajty. INSTRC
používá úplné znaky Unicode. INSTR2
používá kódové body UCS2. INSTR4
používá kódové body UCS4.
-
position
je nenulové celé číslo označující znakstring
kde Oracle Database začne hledat. Pokud jeposition
záporné, Oracle počítá zpětně od koncestring
a potom hledá zpět z výsledné polohy. -
occurrence
je celé číslo označující, který výskytstring
by Oracle měl vyhledat. Hodnotaoccurrence
musí být kladná.
Oba string
a substring
může být kterýkoli z datových typů CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
nebo NCLOB
. Vrácená hodnota je NUMBER
datový typ.
position
a occurrence
musí být datového typu NUMBER
nebo jakéhokoli datového typu, který lze implicitně převést na NUMBER
, a musí být převedeno na celé číslo. Výchozí hodnoty position
a occurrence
jsou 1, což znamená, že Oracle začne hledat první znak string
pro první výskyt substring
. Návratová hodnota je relativní k začátku string
bez ohledu na hodnotu position
a je vyjádřena ve znacích. Pokud je vyhledávání neúspěšné (pokud se substring
neobjeví occurrence
krát za position
znakem string
), pak je návratová hodnota 0.
Viz také:
Tabulka 2-10, „Implicitní matice převodu typu“ Další informace o implicitní konverzi
Příklady
Následující příklad prohledá řetězec CORPORATE
FLOOR
začínající třetím znakem pro řetězec „OR
„. Vrátí pozici v CORPORATE
FLOOR
, kde začíná druhý výskyt „OR
“ :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
V dalším příkladu Oracle počítá zpět od posledního znaku ke třetímu znaku od konce, což je první O
v FLOOR
. Oracle poté hledá zpětně druhý výskyt OR
a zjistí, že tento druhý výskyt začíná druhým znakem ve vyhledávacím řetězci:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
Následující příklad předpokládá dvoubajtovou znakovou sadu databáze.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27