Table des matières

Search

  1. Préface
  2. Le langage de transformation
  3. Constantes
  4. Opérateurs
  5. Variables
  6. Dates
  7. Fonctions

Référence du langage de transformation

Référence du langage de transformation

INSTR

INSTR

Renvoie la position d'un jeu de caractères défini dans une chaîne, en comptant de gauche à droite.

Syntaxe

INSTR(
string
,
search_value
[,
start
[,
occurrence
[,
comparison_type
]]] )
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/Facultatif
Description
chaîne
Obligatoire
Il doit s'agir d'une chaîne de caractères. Transmet la valeur que vous voulez évaluer. Vous pouvez entrer l'expression de transformation valide de votre choix. Les résultats de l'expression doivent être une chaîne de caractères. Dans le cas contraire, INSTR convertit la valeur en chaîne avant de l'évaluer.
search_value
Obligatoire
Aucune valeur. La valeur de recherche est sensible à la casse. Jeu de caractères que vous voulez rechercher. La valeur search_value doit correspondre à une partie de la chaîne. Par exemple, si vous écrivez
INSTR('Alfred Pope', 'Alfred Smith')
, la fonction renvoie 0.
Vous pouvez entrer l'expression de transformation valide de votre choix. Si vous voulez rechercher une chaîne de caractères, placez les caractères de recherche entre guillemets simples, par exemple 'abc'.
début
Facultatif
Doit être une valeur entière. Position dans la chaîne à partir de laquelle vous voulez démarrer la recherche. Vous pouvez entrer l'expression de transformation valide de votre choix.
La valeur par défaut est 1 et signifie que INSTR démarre la recherche au premier caractère dans la chaîne.
Si la position de départ est 0, INSTR effectue la recherche à partir du premier caractère dans la chaîne. Si la position de départ est un nombre positif, INSTR recherche la position de départ en comptant à partir du début de la chaîne. Si la position de départ est un nombre négatif, INSTR recherche la position de départ en comptant à partir de la fin de la chaîne. Si vous omettez cet argument, la fonction utilise la valeur par défaut 1.
occurrence
Facultatif
Nombre entier positif supérieur à 0. Vous pouvez entrer l'expression de transformation valide de votre choix. Si la valeur de recherche apparaît plusieurs fois dans la chaîne, vous pouvez spécifier l'occurrence que vous voulez rechercher. Par exemple, entrez 2 pour rechercher la deuxième occurrence à partir de la position de départ.
Si vous omettez cet argument, la fonction utilise la valeur par défaut 1 ; en d'autres termes, INSTR recherche la première occurrence de la valeur de recherche. Si vous transmettez une valeur décimale, le
Service d'intégration de données
l'arrondit à la valeur entière la plus proche. Si vous transmettez un nombre entier négatif ou 0, la session échoue.
comparison_type
Facultatif
Type de comparaison de chaîne, linguistique ou binaire, lorsque le
Service d'intégration de données
est exécuté en mode Unicode. Lorsque le
Service d'intégration de données
est exécuté en mode ASCII, le type de comparaison est toujours binaire.
Les comparaisons linguistiques tiennent compte des règles de collation spécifiques à la langue, tandis que les comparaisons binaires effectuent une correspondance de bits. Par exemple, le caractère allemand dur s correspond à la chaîne « ss » dans une comparaison linguistique, mais non dans une comparaison binaire. Les comparaisons binaires s'exécutent plus rapidement que les comparaisons linguistiques.
Doit être une valeur entière, 0 ou 1 :
  • 0: INSTR effectue une comparaison linguistique de chaîne.
  • 1: INSTR effectue une comparaison binaire de chaîne.
Par défaut 0.

Valeur de retour

Nombre entier si la recherche est réussie. Un nombre entier représente la position du premier caractère dans la
search_value
, en comptant de gauche à droite.
0 si la recherche échoue.
NULL si une valeur transmise à la fonction est NULL.

Exemples

L'expression suivante renvoie la position de la première occurrence de la lettre « a », en commençant au début de chaque nom de société. L'argument
search_value
étant sensible à la casse, il ignore les « A » dans « Blue Fin Aqua Center » et renvoie la position du « a » de « Aqua » :
INSTR( COMPANY, 'a' )
COMPANY
RETURN VALUE
Blue Fin Aqua Center
13
Maco Shark Shop
2
Scuba Gear
5
Frank's Dive Shop
3
VIP Diving Club
0
L'expression suivante renvoie la position de la deuxième occurrence de la lettre « a », en partant du début de chaque nom de société. L'argument
search_value
étant sensible à la casse, il ignore les « A » dans « Blue Fin Aqua Center » et renvoie 0 :
INSTR( COMPANY, 'a', 1, 2 )
COMPANY
RETURN VALUE
Blue Fin Aqua Center
0
Maco Shark Shop
8
Scuba Gear
9
Frank's Dive Shop
0
VIP Diving Club
0
L'expression suivante renvoie la position de la deuxième occurrence de la lettre « a » dans chaque nom de société, en commençant par le dernier caractère du nom de la société. L'argument
search_value
étant sensible à la casse, il ignore les « A » dans « Blue Fin Aqua Center » et renvoie 0 :
INSTR( COMPANY, 'a', -1, 2 )
COMPANY
RETURN VALUE
Blue Fin Aqua Center
0
Maco Shark Shop
2
Scuba Gear
5
Frank's Dive Shop
0
VIP Diving Club
0
L'expression suivante renvoie la position du premier caractère dans la chaîne « Blue Fin Aqua Center », en commençant par le dernier caractère du nom de la société :
INSTR( COMPANY, 'Blue Fin Aqua Center', -1, 1 )
COMPANY
RETURN VALUE
Blue Fin Aqua Center
1
Maco Shark Shop
0
Scuba Gear
0
Frank's Dive Shop
0
VIP Diving Club
0

Utilisation de la fonction INSTR imbriquée

Vous pouvez imbriquer la fonction INSTR dans d'autres fonctions pour réaliser des tâches plus complexes.
L'expression suivante évalue une chaîne, en commençant par la fin de cette chaîne. L'expression recherche le dernier espace (le plus à droite) dans la chaîne et renvoie tous les caractères situés à sa gauche :
SUBSTR( CUST_NAME,1,INSTR( CUST_NAME,' ' ,-1,1 ))
CUST_NAME
RETURN VALUE
PATRICIA JONES
PATRICIA
MARY ELLEN SHAH
MARY ELLEN
L'expression suivante supprime le caractère « # » d'une chaîne :
SUBSTR( CUST_ID, 1, INSTR(CUST_ID, '#')-1 ) || SUBSTR( CUST_ID, INSTR(CUST_ID, '#')+1 )
CUST_ID
RETURN VALUE
ID#33
ID33
#A3577
A3577
SS #712403399
SS 712403399