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.
-
positionest un entier différent de zéro indiquant le caractère destringlà où Oracle Database commence la recherche. Sipositionest négatif, Oracle compte à rebours à partir de la fin destring, puis effectue une recherche en arrière à partir de la position résultante. -
occurrenceest un entier indiquant quelle occurrence destringOracle doit rechercher. La valeur deoccurrencedoit ê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