Partage 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 SQL_STRING_FUNCTIONS.

Remarques

Les arguments indiqués comme string_exp peuvent être le nom d’une colonne, d’un caractère-chaîne-littéral 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_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 de début, de longueur ou de nombre peuvent être un numérique-littéral ou le résultat d’une autre fonction scalaire, où le type de données sous-jacent peut être représenté comme 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 de chaîne 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 plutôt la taille (interne) du 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 en 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 retournerait la chaîne non NULL.
DIFFERENCE(string_exp1,string_exp2) (ODBC 2.0) Renvoie 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) Renvoie une chaîne de caractères dans laquelle 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 de string_exp, avec tous les caractères majuscules convertis en minuscules.
LEFT(string_exp, count) (ODBC 1.0) Retourne le nombre le plus à gauche de string_exp.
LENGTH(string_exp) (ODBC 1.0) Retourne le nombre de caractères dans string_exp, à l’exclusion des blancs de fin.

LENGTH accepte uniquement les chaînes. Par conséquent, convertit implicitement string_exp en chaîne et retourne 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, start, est spécifié. Si start est spécifié, la recherche commence par la position de caractère indiquée par la valeur de start. 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 start , 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 vides 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 plutôt la taille (interne) du type de données donné.
POSITION(character_expINcharacter_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 fois de nombre répété.
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) Recherchez string_exp1 lesoccurrences de string_exp2, puis remplacez par string_exp3.
RIGHT(string_exp, count) (ODBC 1.0) Retourne le nombre de caractères le plus à droite de string_exp.
RTRIM(string_exp) (ODBC 1.0) Retourne les caractères de string_exp dont les vides de fin ont été supprimés.
SOUNDEX(string_exp) (ODBC 2.0) Renvoie 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 start 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.