Partager via


Fonctions de chaîne

Le tableau suivant répertorie les fonctions de manipulation de chaîne. Une application peut déterminer quelles fonctions de chaîne sont prises en charge par un pilote en appelant SQLGetInfo avec un type d’informations de SQL_STRING_FUNCTIONS.

Notes

Les arguments indiqués comme string_exp peuvent être le nom d’une colonne, d’un littéral de chaîne de caractères ou du résultat d’une autre fonction scalaire, où le type de données sous-jacent peut être représenté en tant que SQL_CHAR, SQL_VARCHAR ou SQL_LONGVARCHAR.

Les arguments indiqués comme character_exp sont une chaîne de caractères de longueur variable.

Les arguments indiqués comme début, longueur ou nombre peuvent être un littéral numérique ou le résultat d’une autre fonction scalaire, où le type de données sous-jacent peut être représenté en tant que SQL_TINYINT, SQL_SMALLINT ou SQL_INTEGER.

Les fonctions de chaîne répertoriées ici sont basées sur 1 ; autrement dit, le premier caractère de la chaîne est le caractère 1.

Les fonctions scalaires BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH et POSITION ont été ajoutées dans ODBC 3.0 pour s’aligner sur SQL-92.

Fonction Description
ASCII( string_exp ) (ODBC 1.0) Retourne la valeur de code ASCII du caractère le plus à gauche de string_exp sous forme d’entier.
BIT_LENGTH( string_exp ) (ODBC 3.0) Retourne la longueur en bits de l'expression de chaîne.

Ne fonctionne pas uniquement pour les types de données de chaîne, par conséquent, ne convertit pas implicitement string_exp en chaîne, mais retourne à la place la taille (interne) de tout type de données donné.
CHAR( code ) (ODBC 1.0) Retourne le caractère qui a la valeur de code ASCII spécifiée par le code. La valeur du code doit être comprise entre 0 et 255 ; sinon, la valeur de retour dépend de la source de données.
CHAR_LENGTH( string_exp ) (ODBC 3.0) Retourne la longueur en caractères de l’expression de chaîne, si l’expression de chaîne est de type de données character ; sinon, retourne la longueur en octets de l’expression de chaîne (le plus petit entier qui n’est pas inférieur au nombre de bits divisé par 8). (Cette fonction est la même que la fonction CHARACTER_LENGTH.)
CHARACTER_LENGTH( string_exp ) (ODBC 3.0) Retourne la longueur en caractères de l’expression de chaîne, si l’expression de chaîne est de type de données character ; sinon, retourne la longueur en octets de l’expression de chaîne (le plus petit entier qui n’est pas inférieur au nombre de bits divisé par 8). (Cette fonction est identique à la fonction CHAR_LENGTH.)
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Retourne une chaîne de caractères qui est le résultat de la concaténation de string_exp2 à string_exp1. La chaîne résultante dépend de SGBD. Par exemple, si la colonne représentée par string_exp1 contenait une valeur NULL, DB2 retournerait NULL, mais SQL Server renvoyait la chaîne non NULL.
DIFFERENCE( string_exp1,string_exp2) (ODBC 2.0) Retourne une valeur entière qui indique la différence entre les valeurs retournées par la fonction SOUNDEX pour string_exp1 et string_exp2.
INSERT( string_exp1, start, length, string_exp2) (ODBC 1.0) Retourne une chaîne de caractères où les caractères de longueur ont été supprimés de string_exp1, en commençant au début et où string_exp2 a été inséré dans string_exp, en commençant au début.
LCASE( string_exp ) (ODBC 1.0) Retourne une chaîne égale à celle dans string_exp, avec tous les caractères majuscules convertis en minuscules.
LEFT( string_exp, count) (ODBC 1.0) Retourne les caractères de nombre de string_exp les plus à gauche.
LENGTH( string_exp ) (ODBC 1.0) Retourne le nombre de caractères dans string_exp, à l’exclusion des espaces de fin.

LENGTH accepte uniquement les chaînes. Par conséquent, convertira implicitement string_exp en chaîne et retournera la longueur de cette chaîne (et non la taille interne du type de données).
LOCATE( string_exp1, string_exp2[, start]) (ODBC 1.0) Retourne la position de départ de la première occurrence de string_exp1 dans string_exp2. La recherche de la première occurrence de string_exp1 commence par la première position de caractère dans string_exp2 , sauf si l’argument facultatif, le début, est spécifié. Si le début est spécifié, la recherche commence par la position de caractère indiquée par la valeur de début. La première position de caractère dans string_exp2 est indiquée par la valeur 1. Si string_exp1 est introuvable dans string_exp2, la valeur 0 est retournée.

Si une application peut appeler la fonction scalaire LOCATE avec les arguments string_exp1, string_exp2 et démarrer , le pilote retourne SQL_FN_STR_LOCATE lorsque SQLGetInfo est appelé avec une option de SQL_STRING_FUNCTIONS. Si l’application peut appeler la fonction scalaire LOCATE avec uniquement les arguments string_exp1 et string_exp2 , le pilote retourne SQL_FN_STR_LOCATE_2 lorsque SQLGetInfo est appelé avec une option de SQL_STRING_FUNCTIONS. Les pilotes qui prennent en charge l’appel de la fonction LOCATE avec deux ou trois arguments retournent à la fois SQL_FN_STR_LOCATE et SQL_FN_STR_LOCATE_2.
LTRIM( string_exp ) (ODBC 1.0) Retourne les caractères de string_exp, avec les espaces de début supprimés.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Retourne la longueur en octets de l'expression de chaîne. Le résultat est le plus petit entier qui n'est pas inférieur au nombre de bits divisé par 8.

Ne fonctionne pas uniquement pour les types de données de chaîne, par conséquent, ne convertit pas implicitement string_exp en chaîne, mais retourne à la place la taille (interne) de tout type de données donné.
POSITION( character_exp IN character_exp) (ODBC 3.0) Retourne la position de la première expression de caractère dans la deuxième expression de caractère. Le résultat est un numérique exact avec une précision définie par l’implémentation et une échelle de 0.
REPEAT( string_exp, count) (ODBC 1.0) Retourne une chaîne de caractères composée de string_exp nombre répété de fois.
REPLACE( string_exp1, string_exp2, string_exp3) (ODBC 1.0) Recherchez string_exp1 desoccurrences de string_exp2, puis remplacez par string_exp3.
RIGHT( string_exp, count) (ODBC 1.0) Retourne les caractères de nombre les plus à droite de string_exp.
RTRIM( string_exp ) (ODBC 1.0) Retourne les caractères de string_exp avec des espaces de fin supprimés.
SOUNDEX( string_exp ) (ODBC 2.0) Retourne une chaîne de caractères dépendante de la source de données représentant le son des mots dans string_exp. Par exemple, SQL Server retourne un code SOUNDEX à 4 chiffres ; Oracle retourne une représentation phonétique de chaque mot.
SPACE( count ) (ODBC 2.0) Retourne une chaîne de caractères composée d’espaces de comptage .
SUBSTRING( string_exp, start, length**)** (ODBC 1.0) Retourne une chaîne de caractères dérivée de string_exp, en commençant à la position de caractère spécifiée par le début pour les caractères de longueur .
UCASE( string_exp ) (ODBC 1.0) Retourne une chaîne égale à celle dans string_exp, avec tous les caractères minuscules convertis en majuscules.