INSTR (Français)
Syntaxe
Description du illustration instr.gif
Objectif
Les fonctions INSTR
recherchent string
pour substring
. La fonction renvoie un entier indiquant la position du caractère dans string
qui est le premier caractère de cette occurrence. INSTR
calcule les chaînes en utilisant les caractères définis par le jeu de caractères d’entrée. INSTRB
utilise des octets au lieu de caractères. INSTRC
utilise des caractères complets Unicode. INSTR2
utilise des points de code UCS2. INSTR4
utilise des points de code UCS4.
-
position
est un entier différent de zéro indiquant le caractère destring
là où Oracle Database commence la recherche. Siposition
est négatif, Oracle compte à rebours à partir de la fin destring
, puis effectue une recherche en arrière à partir de la position résultante. -
occurrence
est un entier indiquant quelle occurrence destring
Oracle doit rechercher. La valeur deoccurrence
doit être positive.
À la fois string
et substring
peut être l’un des types de données CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
ou NCLOB
. La valeur renvoyée est du type de données NUMBER
.
À la fois position
et occurrence
doit être de type de données NUMBER
, ou de tout type de données pouvant être implicitement converti en NUMBER
, et doit être résolu en un entier. Les valeurs par défaut de position
et occurrence
sont 1, ce qui signifie qu’Oracle commence la recherche au premier caractère de string
pour la première occurrence de substring
. La valeur renvoyée est relative au début de string
, quelle que soit la valeur de position
, et est exprimée en caractères. Si la recherche échoue (si substring
n’apparaît pas occurrence
fois après le caractère position
de string
), alors la valeur de retour est 0.
Voir aussi:
Tableau 2-10, « Matrice de conversion de type implicite » pour plus d’informations sur la conversion implicite
Exemples
L’exemple suivant recherche la chaîne CORPORATE
FLOOR
, en commençant par le troisième caractère, pour la chaîne « OR
« . Il renvoie la position dans CORPORATE
FLOOR
à laquelle commence la deuxième occurrence de « OR
» :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
Dans l’exemple suivant, Oracle compte à rebours du dernier caractère au troisième caractère à partir de la fin, qui est le premier O
dans FLOOR
. Oracle recherche ensuite en arrière la deuxième occurrence de OR
et constate que cette deuxième occurrence commence par le deuxième caractère de la chaîne de recherche:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
L’exemple suivant suppose un jeu de caractères de base de données à deux octets.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27