Tous les produits
Search
Centre de documentation

Hologres:String functions

Dernière mise à jour :Aug 11, 2026

Hologres prend en charge les fonctions de manipulation de chaînes suivantes. Pour la liste complète des fonctions compatibles avec PostgreSQL, consultez Fonctions PostgreSQL.

Index des fonctions

Concaténation, fractionnement et remplissage de chaînes

Fonction Description
STRING \|\| STRING[STRING \ \

STRING](#16163c209490i)

Concatène deux chaînes.

CONCAT Concatène deux chaînes ou plus, en ignorant les arguments NULL.
CONCAT_WS Concatène des chaînes à l'aide d'un séparateur, en ignorant les arguments de chaîne NULL.
LISTAGG Agrège les valeurs d'une colonne sur plusieurs lignes en une seule chaîne. Compatible Oracle ; nécessite l'extension orafce.
STRING_AGG Agrège les valeurs d'une colonne sur plusieurs lignes en une seule chaîne.
LEFT Extrait des caractères depuis le début d'une chaîne.
RIGHT Extrait des caractères depuis la fin d'une chaîne.
SPLIT_PART Fractionne une chaîne selon un délimiteur et renvoie le n-ième segment.
SUBSTRING Extrait une sous-chaîne par position ou par expression régulière. Alias : SUBSTR (forme compatible Oracle).
SUBSTR Extrait une sous-chaîne à partir d'une position de départ. Compatible Oracle ; nécessite l'extension orafce. Alias : SUBSTRING.
REGEXP_MATCH Fait correspondre une chaîne à une expression régulière et renvoie les correspondances sous forme de tableau.
REGEXP_SPLIT_TO_TABLE Fractionne une chaîne selon une expression régulière et renvoie chaque segment sous forme de ligne.
REGEXP_SPLIT_TO_ARRAY Fractionne une chaîne selon une expression régulière et renvoie les segments sous forme de tableau.
TRIM Supprime les caractères spécifiés à l'une ou aux deux extrémités d'une chaîne.
BTRIM Supprime les caractères spécifiés aux deux extrémités d'une chaîne.
LTRIM Supprime les caractères spécifiés à gauche (au début) d'une chaîne.
RTRIM Supprime les caractères spécifiés à droite (à la fin) d'une chaîne.
LPAD Remplit une chaîne à gauche jusqu'à une longueur spécifiée.
RPAD Remplit une chaîne à droite jusqu'à une longueur spécifiée.

Autres fonctions de manipulation de chaînes

Fonction Description
ASCII Renvoie le code ASCII du premier caractère.
CHAR_LENGTH Renvoie la longueur en caractères d'une chaîne. Alias : LENGTH.
LENGTH Renvoie le nombre de caractères dans une chaîne. Alias : CHAR_LENGTH.
CHR Renvoie le caractère correspondant à une valeur de code donnée.
INITCAP Met en majuscule la première lettre de chaque mot.
LOWER Convertit une chaîne en minuscules.
UPPER Convertit une chaîne en majuscules.
OCTET_LENGTH Renvoie le nombre d'octets dans une chaîne.
MD5 Renvoie le hachage MD5 d'une chaîne au format hexadécimal.
POSITION Renvoie la position d'une sous-chaîne dans une chaîne. Alias : STRPOS.
STRPOS Renvoie la position d'une sous-chaîne dans une chaîne. Alias : POSITION.
INSTR Renvoie la position d'une sous-chaîne dans une plage donnée d'une chaîne. Compatible Oracle ; nécessite l'extension orafce.
REPLACE Remplace toutes les occurrences d'une sous-chaîne par une autre chaîne.
REGEXP_REPLACE Remplace les sous-chaînes correspondant à une expression régulière POSIX.
TRANSLATE Remplace des caractères individuels dans une chaîne.
REPEAT Répète une chaîne un nombre spécifié de fois.
STARTS_WITH Renvoie true si une chaîne commence par un préfixe spécifié.
PARSE_IDENT Analyse une chaîne d'identificateur SQL qualifié.
QUOTE_IDENT Renvoie une chaîne entre guillemets en tant qu'identificateur SQL valide.
QUOTE_LITERAL Renvoie une chaîne entre guillemets en tant que constante de chaîne SQL valide.
TO_HEX Convertit un entier en sa représentation hexadécimale.
TO_NUMBER Convertit une chaîne en type numérique.
PLVSTR.RVRS Inverse une chaîne. Compatible Oracle ; nécessite l'extension orafce.
ROW Renvoie le numéro de ligne de la ligne actuelle. Pris en charge dans Hologres V1.3 et versions ultérieures.

Concaténation, fractionnement et remplissage de chaînes

STRING \|\| STRING

Concatène deux chaînes.

Syntaxe

<string_value1> TEXT || <string_value2> TEXT

Paramètres

Paramètre Obligatoire Description
string_value1 Oui Première expression de chaîne.
string_value2 Oui Deuxième expression de chaîne.

Type de renvoi : TEXT

Exemple

-- Returns: HologreSQL
SELECT 'Holo' || 'greSQL';

CONCAT

Concatène deux chaînes ou plus en une seule. Les arguments NULL sont ignorés.

Syntaxe

CONCAT(<str1> TEXT, <str2> TEXT, ..., <strN> TEXT)

Paramètres

Paramètre Obligatoire Description
str1, ..., strN Oui Chaînes à concaténer. Les valeurs NULL sont ignorées.

Type de renvoi : TEXT

Exemple

SELECT CONCAT('abcde', 2, NULL, 22);

Résultat :

concat
--------
abcde222

CONCAT_WS

Concatène tous les arguments suivant le premier, en utilisant le premier argument comme séparateur.

Syntaxe

CONCAT_WS(<sep> TEXT, str "any" [, str "any" [, ...]])

Le type any indique que tous les types de données sont acceptés.

Paramètres

Obligatoire :

sep : Séparateur à insérer entre chaque chaîne. Si sep est NULL, la fonction renvoie NULL.

Facultatif :

str : Chaînes à concaténer. Les arguments de chaîne NULL sont ignorés.

Type de renvoi : TEXT

Exemple

SELECT CONCAT_WS(',', 'abcde', 2, NULL, 22);

Résultat :

concat_ws
----------
abcde,2,22

LISTAGG

Agrège les valeurs d'une même colonne sur plusieurs lignes en une seule chaîne. Il s'agit d'une fonction compatible Oracle qui nécessite l'extension orafce. Pour les instructions de configuration, consultez Fonctions compatibles Oracle.

Syntaxe

LISTAGG(<str1> TEXT [, <str2> TEXT])

Paramètres

Paramètre Obligatoire Description
str1 Oui Colonne ou expression de chaîne à agréger.
str2 Non Séparateur entre les valeurs agrégées. Par défaut : aucun séparateur.

Type de renvoi : TEXT

Exemples

-- Returns: hologres
SELECT LISTAGG(t) FROM (VALUES('holo'), ('gres')) AS l(t);
-- Returns: holo.gres
SELECT LISTAGG(t, '.') FROM (VALUES('holo'), ('gres')) AS l(t);

STRING_AGG

Agrège les valeurs d'une même colonne sur plusieurs lignes en une seule chaîne.

Syntaxe

STRING_AGG(expression [order_by_clause]) [FILTER (WHERE filter_clause)]
La clause FILTER est prise en charge dans Hologres V1.3 et versions ultérieures. Pour mettre à niveau votre instance, consultez Mettre à niveau une instance . Pour obtenir de l'assistance, rejoignez le groupe DingTalk Hologres. Pour plus d'instructions, consultez Comment obtenir plus d'assistance en ligne ? .

Paramètres

Paramètre Obligatoire Description
expression Oui Colonne ou expression à agréger.
order_by_clause Non Définit l'ordre de tri des valeurs avant la concaténation. Si omis, l'ordre n'est pas garanti.
FILTER (WHERE filter_clause) Non Filtre les lignes incluses dans l'agrégation.

Type de renvoi : TEXT

Exemples

Exemple 1 : agrège tous les noms de villes en une seule chaîne.

CREATE TABLE city_test (
    country text,
    city text
);

INSERT INTO city_test
    VALUES ('China', 'Shanghai'), ('China', 'Taiwan'), ('Japan', 'Tokyo'), ('France', 'Paris'), ('UK', 'London');

SELECT STRING_AGG(city, ',') FROM city_test;

Résultat :

string_agg
-------------------------------
Shanghai,Taiwan,Tokyo,Paris,London

Exemple 2 : agrège les noms où student_id > 2.

CREATE TABLE name_text (
    student_id int,
    name text
);

INSERT INTO name_text
    VALUES (1, 'Zhang San'), (2, 'Li Si'), (3, 'Wang Wu'), (4, 'Zhou Liu');

SELECT STRING_AGG(name, ',') FILTER (WHERE student_id > 2) FROM name_text;

Résultat :

string_agg
-----------
Wang Wu,Zhou Liu

LEFT

Extrait un nombre spécifié de caractères depuis le début d'une chaîne.

Syntaxe

LEFT(<str> TEXT, <num> INT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
num Oui Nombre de caractères à extraire. Si la valeur est négative, renvoie tous les caractères sauf les derniers -num caractères.

Type de renvoi : TEXT

Exemple

SELECT LEFT('hologres', 4);

Résultat :

left
----
holo

RIGHT

Extrait un nombre spécifié de caractères depuis la fin d'une chaîne.

Syntaxe

RIGHT(<str> TEXT, <num> INT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
num Oui Nombre de caractères à extraire. Si la valeur est négative, renvoie tous les caractères sauf les premiers -num caractères.

Type de renvoi : TEXT

Exemple

SELECT RIGHT('hologres', 4);

Résultat :

right
-----
gres

SPLIT_PART

Fractionne une chaîne selon un délimiteur et renvoie le n-ième segment.

Syntaxe

SPLIT_PART(<str> TEXT, <delimiter> TEXT, <num> INT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible à fractionner.
delimiter Oui Délimiteur utilisé pour le fractionnement.
num Oui Index (base 1) du segment à renvoyer.

Type de renvoi : TEXT

Remarques d'utilisation

  • Si num est supérieur au nombre de segments, la fonction renvoie NULL.

Exemple

CREATE TABLE split_part_test (
    a text
);

INSERT INTO split_part_test VALUES ('a/b/c/d/e'), ('a1/b1/c1/d1/e1');

SELECT split_part(a, '/', 2) FROM split_part_test;

Résultat :

split_part
----------
b
b1

SUBSTRING

Extrait une sous-chaîne d'une chaîne cible. Prend en charge trois formes : basée sur la position, expression régulière POSIX et expression régulière SQL.

Syntaxe

Basée sur la position :

SUBSTRING(<str> TEXT [FROM <num_start> INT] [FOR <num_end> INT])

Expression régulière POSIX :

SUBSTRING(<str> TEXT FROM <pattern> TEXT)

Expression régulière SQL :

SUBSTRING(<str> TEXT FROM <pattern> TEXT FOR <escape> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
num_start Non Position de départ (base 1). Par défaut : 1.
num_end Non Nombre de caractères à extraire. Par défaut : jusqu'à la fin de la chaîne.
pattern Oui (formes regex) Expression régulière à faire correspondre.
escape Oui (regex SQL) Caractère d'échappement pour les caractères spéciaux tels que ., * et +.

Type de renvoi : TEXT

Exemples

Exemple 1 : extrait une sous-chaîne par position.

SELECT SUBSTRING('Thomas' FROM 2 FOR 3);

Résultat :

substring
---------
hom

Exemple 2 : extrait une sous-chaîne correspondant à une expression régulière POSIX.

SELECT SUBSTRING('Thomas' FROM '...$');

Résultat :

substring
---------
mas

Exemple 3 : extrait une sous-chaîne correspondant à une expression régulière SQL.

SELECT SUBSTRING('Thomas' FROM '%#"o_a#"_' FOR '#');

Résultat :

substring
---------
oma

SUBSTR

Extrait une sous-chaîne à partir d'une position de départ. Il s'agit d'une fonction compatible Oracle qui nécessite l'extension orafce. Pour les instructions de configuration, consultez Fonctions compatibles Oracle.

Syntaxe

Extraire depuis une position de départ jusqu'à la fin :

SUBSTR(<str> TEXT, <num_start> INTEGER)

Extraire une sous-chaîne de longueur fixe :

SUBSTR(<str> TEXT, <num_start> INTEGER, <len> INTEGER)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
num_start Oui Position de départ (base 1).
len Non Nombre de caractères à extraire. Par défaut : jusqu'à la fin de la chaîne.

Type de renvoi : TEXT

Exemples

Exemple 1 : extrait depuis le quatrième caractère jusqu'à la fin.

-- Returns: ogres
SELECT SUBSTR('Hologres', 4);

Exemple 2 : extrait cinq caractères à partir du deuxième caractère.

-- Returns: ologr
SELECT SUBSTR('Hologres', 2, 5);

REGEXP_MATCH

Fait correspondre une chaîne à une expression régulière et renvoie les correspondances sous forme de tableau.

Syntaxe

REGEXP_MATCH(<str> TEXT, <pattern> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne à faire correspondre.
pattern Oui Expression régulière.

Type de renvoi : ARRAY

Exemple

SELECT regexp_match('foobarbequebaz', '(bar)(beque)');

Résultat :

regexp_match
------------
{bar,beque}

REGEXP_SPLIT_TO_TABLE

Fractionne une chaîne à l'aide d'une expression régulière et renvoie chaque segment sous forme de ligne distincte. Utilisez cette fonction pour développer les valeurs délimitées en lignes.

Syntaxe

REGEXP_SPLIT_TO_TABLE(<str> TEXT, <pattern> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne à fractionner.
pattern Oui Expression régulière identifiant les positions de fractionnement.

Type de renvoi : TEXT (une ligne par segment)

Exemple

CREATE TABLE interests_test (
    name text,
    intrests text
);

INSERT INTO interests_test
    VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');

SELECT name, REGEXP_SPLIT_TO_TABLE(intrests, ',') FROM interests_test;

Résultat :

name      | regexp_split_to_table
----------+----------------------
Zhang San | singing
Zhang San | dancing
Li Si     | soccer
Li Si     | running
Li Si     | drawing
Wang Wu   | flower arranging
Wang Wu   | calligraphy
Wang Wu   | playing piano
Wang Wu   | sleeping

REGEXP_SPLIT_TO_ARRAY

Fractionne une chaîne à l'aide d'une expression régulière et renvoie les segments sous forme de tableau.

Syntaxe

REGEXP_SPLIT_TO_ARRAY(<str> TEXT, <pattern> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne à fractionner.
pattern Oui Expression régulière identifiant les positions de fractionnement.

Type de renvoi : ARRAY

Exemple

CREATE TABLE interests_test (
    name text,
    intrests text
);

INSERT INTO interests_test
    VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');

SELECT name, REGEXP_SPLIT_TO_ARRAY(intrests, ',') FROM interests_test;

Résultat :

name      | regexp_split_to_array
----------+----------------------------------------------------------
Zhang San | {singing,dancing}
Li Si     | {soccer,running,drawing}
Wang Wu   | {"flower arranging",calligraphy,"playing piano",sleeping}

TRIM

Supprime les caractères spécifiés à l'une ou aux deux extrémités d'une chaîne.

Syntaxe

TRIM([LEADING | TRAILING | BOTH] [<characters> TEXT] FROM <string> TEXT)

Paramètres

Paramètre Obligatoire Description
`LEADING TRAILING BOTH`

Non

Extrémité(s) à rogner. Par défaut : BOTH.

characters Non Ensemble de caractères à supprimer. Chaque caractère est mis en correspondance individuellement, et non en tant que chaîne entière. Par défaut : espace.
string Oui Chaîne cible.

Type de renvoi : TEXT

Exemple

-- Returns: Tom
SELECT TRIM(BOTH 'xyz' FROM 'yxTomxx');

BTRIM

Supprime les caractères spécifiés aux deux extrémités d'une chaîne.

Syntaxe

BTRIM(<str> TEXT [, <characters> TEXT])

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
characters Non Ensemble de caractères à supprimer aux deux extrémités. Chaque caractère est mis en correspondance individuellement, et non en tant que chaîne entière. Par défaut : espace.

Type de renvoi : TEXT

Exemple

-- Returns: trim
SELECT BTRIM('xyxtrimyyx', 'xyz');

LTRIM

Supprime les caractères spécifiés à gauche (au début) d'une chaîne.

Syntaxe

LTRIM(<str> TEXT [, <characters> TEXT])

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
characters Non Ensemble de caractères à supprimer à gauche. Chaque caractère est mis en correspondance individuellement, et non en tant que chaîne entière. Par défaut : espace.

Type de renvoi : TEXT

Exemple

-- Returns: test
SELECT LTRIM('zzzytest', 'xyz');

RTRIM

Supprime les caractères spécifiés à droite (à la fin) d'une chaîne.

Syntaxe

RTRIM(<str> TEXT [, <characters> TEXT])

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
characters Non Ensemble de caractères à supprimer à droite. Chaque caractère est mis en correspondance individuellement, et non en tant que chaîne entière. Par défaut : espace.

Type de renvoi : TEXT

Exemple

-- Returns: test
SELECT RTRIM('testxxzx', 'xyz');

LPAD

Remplit une chaîne à gauche avec un caractère de remplissage jusqu'à une longueur totale spécifiée.

Syntaxe

LPAD(<str> TEXT, <length> INT [, <fill> TEXT])

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
length Oui Longueur totale du résultat. Si str est plus long que length, la chaîne est tronquée à droite pour atteindre la longueur spécifiée.
fill Non Caractère de remplissage. Par défaut : espace.

Type de renvoi : TEXT

Exemple

-- Returns: xyxhi
SELECT LPAD('hi', 5, 'xy');

RPAD

Remplit une chaîne à droite avec un caractère de remplissage jusqu'à une longueur totale spécifiée.

Syntaxe

RPAD(<str> TEXT, <length> INT [, <fill> TEXT])

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
length Oui Longueur totale du résultat. Si str est plus long que length, la chaîne est tronquée à droite pour atteindre la longueur spécifiée.
fill Non Caractère de remplissage. Par défaut : espace.

Type de renvoi : TEXT

Exemple

-- Returns: hixyx
SELECT RPAD('hi', 5, 'xy');

Autres fonctions de manipulation de chaînes

ASCII

Renvoie le code ASCII du premier caractère d'une chaîne.

Syntaxe

ASCII(<str> TEXT)

Type de renvoi : INTEGER

Exemple

-- Returns: 120
SELECT ASCII('x');

CHAR_LENGTH

Renvoie le nombre de caractères dans une chaîne. Équivalent à LENGTH.

Syntaxe

CHAR_LENGTH(<str> TEXT)

Type de renvoi : INTEGER

Exemple

-- Returns: 4
SELECT CHAR_LENGTH('jose');

LENGTH

Renvoie le nombre de caractères dans une chaîne. Dans l'encodage UTF-8, chaque caractère chinois, chiffre ou lettre compte pour un caractère. Équivalent à CHAR_LENGTH.

Syntaxe

LENGTH(<str> TEXT)

Type de renvoi : INTEGER

Exemple

-- Returns: 4
SELECT LENGTH('jose');

CHR

Renvoie le caractère correspondant à une valeur de code ASCII ou Unicode donnée.

Syntaxe

CHR(<num> INT)

Type de renvoi : TEXT

Exemple

-- Returns: A
SELECT CHR(65);

INITCAP

Convertit la première lettre de chaque mot en majuscule et le reste en minuscule. Les mots sont des séquences de caractères alphanumériques séparées par des caractères non alphanumériques.

Syntaxe

INITCAP(<str> TEXT)

Type de renvoi : TEXT

Exemple

-- Returns: Hi Thomas
SELECT INITCAP('hi THOMAS');

LOWER

Convertit une chaîne en minuscules.

Syntaxe

LOWER(<str> TEXT)

Type de renvoi : TEXT

Exemple

-- Returns: tom
SELECT LOWER('TOM');

UPPER

Convertit une chaîne en majuscules.

Syntaxe

UPPER(<str> TEXT)

Type de renvoi : TEXT

Exemple

-- Returns: TOM
SELECT UPPER('tom');

OCTET_LENGTH

Renvoie le nombre d'octets dans une chaîne.

Syntaxe

OCTET_LENGTH(<str> TEXT)

Type de renvoi : INTEGER

Exemple

-- Returns: 4
SELECT OCTET_LENGTH('jose');

MD5

Calcule le hachage MD5 d'une chaîne et renvoie le résultat sous forme de chaîne hexadécimale.

Syntaxe

MD5(<str> TEXT)

Type de renvoi : TEXT

Exemple

-- Returns: 900150983cd24fb0d6963f7d28e17f72
SELECT MD5('abc');

POSITION

Renvoie la position de départ d'une sous-chaîne dans une chaîne. Renvoie 0 si la sous-chaîne est introuvable. Équivalent à STRPOS.

Syntaxe

POSITION(<substr> TEXT IN <str> TEXT)

Paramètres

Paramètre Obligatoire Description
substr Oui Sous-chaîne à rechercher.
str Oui Chaîne cible.

Type de renvoi : INTEGER

Exemple

-- Returns: 3
SELECT POSITION('om' IN 'Thomas');

STRPOS

Renvoie la position de départ d'une sous-chaîne dans une chaîne. Renvoie 0 si la sous-chaîne est introuvable. Équivalent à POSITION.

Syntaxe

STRPOS(<str> TEXT, <substr> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
substr Oui Sous-chaîne à rechercher.

Type de renvoi : INTEGER

Exemple

-- Returns: 2
SELECT STRPOS('high', 'ig');

INSTR

Renvoie la position d'une sous-chaîne dans une chaîne cible, avec contrôle facultatif de la position de départ et de l'occurrence. Renvoie 0 si la sous-chaîne est introuvable. Il s'agit d'une fonction compatible Oracle qui nécessite l'extension orafce. Pour les instructions de configuration, consultez Fonctions compatibles Oracle.

Syntaxe

INSTR(<str> TEXT, <patt> TEXT [, <start> INTEGER [, <nth> INTEGER]])

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
patt Oui Sous-chaîne à rechercher.
start Non Position à partir de laquelle commencer la recherche. Par défaut : 1 (début de la chaîne).
nth Non Occurrence à trouver. Par défaut : 1 (première occurrence).

Type de renvoi : INTEGER

Exemples

-- Returns: 4 (second occurrence of 'o', searching from position 1)
SELECT INSTR('Hologres', 'o', 1, 2);
-- Returns: 2 (first occurrence of 'o', searching from position 1)
SELECT INSTR('Hologres', 'o', 1, 1);
-- Returns: 4 (first occurrence of 'o' at or after position 4)
SELECT INSTR('Hologres', 'o', 4);
-- Returns: 2 (first occurrence of 'o')
SELECT INSTR('Hologres', 'o');

REPLACE

Remplace toutes les occurrences d'une sous-chaîne dans une chaîne.

Syntaxe

REPLACE(<str> TEXT, <old_str> TEXT, <new_str> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
old_str Oui Sous-chaîne à remplacer.
new_str Oui Chaîne de remplacement.

Type de renvoi : TEXT

Exemple

CREATE TABLE animal_test (
    animal text,
    color text
);

INSERT INTO animal_test
    VALUES ('dog', 'white'), ('cat', 'white'), ('tiger', 'yellow');

SELECT animal, REPLACE(color, 'white', 'multi-colored') FROM animal_test;

Résultat :

animal | replace
-------+--------------
dog    | multi-colored
cat    | multi-colored
tiger  | yellow

REGEXP_REPLACE

Remplace les sous-chaînes correspondant à une expression régulière POSIX par une chaîne de remplacement.

Syntaxe

REGEXP_REPLACE(<str> TEXT, <regex> TEXT, <replacement> TEXT [, <flags> TEXT])

Paramètres

Obligatoire :

Paramètre Description
str Chaîne cible.
regex Expression régulière POSIX à faire correspondre.
replacement Chaîne de remplacement.

Facultatif :

flags : Un ou plusieurs caractères contrôlant le comportement de la correspondance. Par défaut : remplace uniquement la première correspondance, sensible à la casse.

Indicateur Description
g Remplacer toutes les occurrences (par défaut, seule la première est remplacée).
i Correspondance insensible à la casse.
m Mode multiligne.
s Mode monoligne : . correspond aux nouvelles lignes.

Type de renvoi : TEXT

Exemple

CREATE TABLE a_test (
    a text
);

INSERT INTO a_test VALUES ('Abcd1234abCd');

SELECT REGEXP_REPLACE(a, '1234.', '77', 'ig') FROM a_test;

Résultat :

regexp_replace
--------------
Abcd77bCd

TRANSLATE

Remplace des caractères individuels dans une chaîne selon un mappage de caractères.

Syntaxe

TRANSLATE(<str> TEXT, <substr> TEXT, <newstr> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
substr Oui Ensemble de caractères à remplacer.
newstr Oui Caractères de remplacement, mappés positionnellement à substr. Si newstr est plus court que substr, les caractères supplémentaires dans substr sont supprimés du résultat.

Type de renvoi : TEXT

Exemple

-- Returns: a2x5
SELECT TRANSLATE('12345', '143', 'ax');

REPEAT

Répète une chaîne un nombre spécifié de fois.

Syntaxe

REPEAT(<str> TEXT, <number> INT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne à répéter.
number Oui Nombre de répétitions.

Type de renvoi : TEXT

Exemple

-- Returns: PgPgPgPg
SELECT REPEAT('Pg', 4);

STARTS_WITH

Renvoie true si une chaîne commence par un préfixe spécifié.

Syntaxe

STARTS_WITH(<str> TEXT, <prefix> TEXT)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
prefix Oui Préfixe à vérifier.

Type de renvoi : BOOLEAN (t pour true, f pour false)

Exemple

-- Returns: t
SELECT STARTS_WITH('alphabet', 'alph');

PARSE_IDENT

Analyse une chaîne d'identificateur SQL qualifié et renvoie ses composants sous forme de tableau. Les composants non mis entre guillemets sont convertis en minuscules ; les composants entre guillemets conservent leur casse.

Syntaxe

PARSE_IDENT(<quali_iden> TEXT)

Paramètres

Paramètre Obligatoire Description
quali_iden Oui Identificateur SQL qualifié, tel qu'un nom de table entièrement qualifié.

Type de renvoi : TEXT (format tableau)

Exemple

-- Returns: {"SomeSchema","sometable"}
SELECT PARSE_IDENT('"SomeSchema".someTable');

QUOTE_IDENT

Renvoie la chaîne entre guillemets en tant qu'identificateur SQL valide, en ajoutant des guillemets doubles si nécessaire (par exemple, lorsque la chaîne contient des espaces ou des lettres majuscules qui seraient autrement converties en minuscules).

Syntaxe

QUOTE_IDENT(<str> TEXT)

Type de renvoi : TEXT

Exemple

-- Returns: "Foo bar"
SELECT QUOTE_IDENT('Foo bar');

QUOTE_LITERAL

Renvoie la chaîne entre guillemets en tant que constante de chaîne SQL valide, en échappant les guillemets simples si nécessaire.

Syntaxe

QUOTE_LITERAL(<str> TEXT)

Type de renvoi : TEXT

Exemple

-- Returns: 'O''Reilly'
SELECT QUOTE_LITERAL(E'O\'Reilly');

TO_HEX

Convertit un entier en sa représentation sous forme de chaîne hexadécimale.

Syntaxe

TO_HEX(<number> INT | BIGINT)

Type de renvoi : TEXT

Exemple

-- Returns: 7fffffff
SELECT TO_HEX(2147483647);

TO_NUMBER

Convertit une chaîne formatée en valeur numérique à l'aide d'un modèle de format.

Syntaxe

TO_NUMBER(<str1> TEXT, <str2> TEXT)

Paramètres

Paramètre Obligatoire Description
str1 Oui Chaîne à convertir.
str2 Oui Modèle de format définissant la manière d'analyser la chaîne.

Type de renvoi : NUMERIC

Exemple

-- Returns: -12454.8
SELECT TO_NUMBER('12,454.8-', '99G999D9S');

PLVSTR.RVRS

Inverse une partie ou la totalité d'une chaîne. Il s'agit d'une fonction compatible Oracle qui nécessite l'extension orafce. Pour les instructions de configuration, consultez Fonctions compatibles Oracle.

Syntaxe

Inverser la chaîne entière :

PLVSTR.RVRS(<str> TEXT)

Inverser depuis une position de départ jusqu'à la fin :

PLVSTR.RVRS(<str> TEXT, <start> INTEGER)

Inverser une plage spécifiée :

PLVSTR.RVRS(<str> TEXT, <start> INTEGER, <end> INTEGER)

Paramètres

Paramètre Obligatoire Description
str Oui Chaîne cible.
start Non Position de départ de la plage à inverser (base 1). Par défaut : 1.
end Non Position de fin de la plage à inverser. Par défaut : fin de la chaîne.

Type de renvoi : TEXT

Exemples

-- Returns: sergoloH (entire string reversed)
SELECT PLVSTR.RVRS('Hologres');
-- Returns: sergo (reversed from position 4 to end)
SELECT PLVSTR.RVRS('Hologres', 4);
-- Returns: rg (positions 5-6 reversed)
SELECT PLVSTR.RVRS('Hologres', 5, 6);

ROW

Renvoie le numéro de ligne de la ligne actuelle. Pris en charge dans Hologres V1.3 et versions ultérieures.

Pour mettre à niveau votre instance vers la version V1.3 ou ultérieure, consultez Mettre à niveau une instance . Pour obtenir de l'assistance, rejoignez le groupe DingTalk Hologres. Pour plus d'instructions, consultez Comment obtenir plus d'assistance en ligne ? .

Syntaxe

ROW(<val1>, <val2>, ...)

Type de renvoi : ARRAY ou TEXT

Exemple

L'exemple suivant renvoie les lignes où la colonne a et la colonne b ont des valeurs égales.

CREATE TABLE row_test (
    a text,
    b text
);

INSERT INTO row_test VALUES ('0', '0'), ('1', '0');

SELECT a, b FROM row_test WHERE ROW(a, b) = ROW(b, a);

Résultat :

a | b
--+--
0 | 0