Commande SEEK

Recherche, dans un champ caractère indexé, la première valeur qui correspond à la chaîne ou à l'expression de caractères spécifiée.

Syntaxe

SEEK expression_recherchée

Paramètres

Nom Description

expression_recherchée

Expression de type caractère à rechercher.

Vous pouvez utiliser une chaîne entre guillemets, une variable de type caractère ou une expression de type caractère valide. L'expression_recherchée respecte la casse et peut inclure des espaces de début, qui sont traitées comme des caractères.

Exemples

Rechercher la première valeur d'un champ qui correspond à une variable de type caractère

Le champ Num_Carte a été défini en tant que champ caractère et il est indexé dans l'ordre croissant.

L'exemple ci-dessous permet de trouver la première valeur du champ qui correspond exactement à la valeur contenue dans la variable num_carte_f ou qui commence par celle-ci.

INDEX ON Num_Carte TO "NumCarte" OPEN
SET INDEX TO "NumCarte"
SEEK v_num_carte

Rechercher la première valeur d'un champ qui correspond à une chaîne de caractères

Le champ Num_Carte a été défini en tant que champ caractère et il est indexé dans l'ordre croissant.

L'exemple ci-dessous permet de trouver la première valeur du champ qui correspond exactement à "AB-123" ou qui commence par ce littéral de caractère :

INDEX ON Num_Carte TO "NumCarte" OPEN
SET INDEX TO "NumCarte"
SEEK "AB-123"

Remarques

Remarque

Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.

Fonctionnement

Utilisez la commande SEEK pour accéder directement au premier enregistrement d'une table qui contient la valeur du paramètre expression_recherchée dans le champ caractère indexé.

  • Si l'expression recherchée est trouvée le premier enregistrement correspondant de la table est sélectionné.
  • Si l'expression recherchée n'est pas trouvée le message « Aucune correspondance de clé n'a été trouvée » s'affiche et la table est placée au premier enregistrement présentant une valeur supérieure à l'expression recherchée.

    Si aucune valeur du champ indexé n'est supérieure à l'expression recherchée, la table est placée sur le premier enregistrement.

Index requis

Pour utiliser SEEK afin de rechercher un champ de type caractère, vous devez d'abord indexer le champ dans l'ordre croissant. Si plusieurs champs de type caractère sont indexés dans l'ordre croissant, seul le premier champ indiqué dans l'index est exploré.

La commande SEEK ne peut pas être utilisée pour rechercher dans des champs d'index qui ne soient pas de type caractère ni des champs caractère indexés dans l'ordre décroissant.

Rapprochement partiel pris en charge

Le rapprochement partiel est pris en charge. L'expression de recherche peut être contenue par une valeur plus longue dans le champ indexé. Toutefois, l'expression recherchée doit apparaître au début du champ pour constituer un rapprochement.

La commande SEEK n'est pas affectée par l'option Comparaisons exactes de caractères (SET EXACT ON/OFF).

Guide de création de scripts ACL 14.1