Documentation PostgreSQL 9.6.24 > Langage SQL > Fonctions et opérateurs > Fonctions et opérateurs de chaînes binaires | |
Fonctions et opérateurs de chaînes | Fonctions et opérateurs sur les chaînes de bits |
Cette section décrit les fonctions et opérateurs d'examen et de manipulation des valeurs de type bytea.
SQL définit quelques fonctions de chaînes qui utilisent des mots-clés qui sont employés à la place de virgules pour séparer les arguments. Les détails sont présentés dans Tableau 9.11, « Fonctions et opérateurs SQL pour chaînes binaires ». PostgreSQL™ fournit aussi des versions de ces fonctions qui utilisent la syntaxe standard de l'appel de fonction (voir le Tableau 9.12, « Autres fonctions sur les chaînes binaires »).
Les résultats en exemple montrés ici supposent que le paramètre serveur bytea_output est configuré à escape (le format traditionnel de PostgreSQL).
Tableau 9.11. Fonctions et opérateurs SQL pour chaînes binaires
Fonction | Type renvoyé | Description | Exemple | Résultat |
---|---|---|---|---|
chaîne || chaîne | bytea | Concaténation de chaîne | '\\Post'::bytea || '\047gres\000'::bytea | \\Post'gres\000 |
octet_length(chaîne) | int | Nombre d'octets d'une chaîne binaire | octet_length( 'jo\000se'::bytea) | 5 |
overlay(chaîne placing chaîne from int [for int]) | bytea | Remplace une sous-chaîne | overlay('Th\000omas'::bytea placing E'\002\003'::bytea from 2 for 3) | T\\002\\003mas |
position(sous-chaîne in chaîne) | int | Emplacement de la sous-chaîne indiquée | position( '\000om'::bytea in 'Th\000omas'::bytea) | 3 |
substring(chaîne [from int] [for int]) | bytea | Extrait la sous-chaîne | substring('Th\000omas'::bytea from 2 for 3) | h\000o |
trim([both] octets from chaîne) | bytea | Supprime la plus longue chaîne composée uniquement des octets apparaissant dans octets à partir du début et de la fin de chaîne | trim('\000\001'::bytea from '\000Tom\001'::bytea) | Tom |
Des fonctions supplémentaires de manipulations de chaînes binaires sont listées dans le Tableau 9.12, « Autres fonctions sur les chaînes binaires ». Certaines sont utilisées en interne pour coder les fonctions de chaînes suivant le standard SQL et sont listées dans le Tableau 9.11, « Fonctions et opérateurs SQL pour chaînes binaires ».
Tableau 9.12. Autres fonctions sur les chaînes binaires
Fonction | Type retourné | Description | Exemple | Résultat |
---|---|---|---|---|
btrim(chaîne bytea, octets bytea) | bytea | Supprime la plus longue chaîne constituée uniquement des octets apparaissant dans octets à partir du début et de la fin de chaîne. | btrim('\000trim\001'::bytea, '\000\001'::bytea) | trim |
decode(chaîne text, format text) | bytea | Décode les données binaires de leur représentation textuelle dans chaîne auparavant codée. Les options pour format sont les mêmes que pour encode. | decode('123\000456', 'escape') | 123\000456 |
encode(chaîne bytea, type text) | text | Code les données binaires en une représentation textuelle. Les formats supportés sont : base64, hex, escape. escape convertit les octets nuls et les octets dont le bit de poids fort est à 1, en séquence octale (\nnn) et des antislashs doubles. | encode('123\000456'::bytea, 'escape') | 123\000456 |
get_bit(chaîne, offset) | int | Extrait un bit d'une chaîne | get_bit('Th\000omas'::bytea, 45) | 1 |
get_byte(chaîne, offset) | int | Extrait un octet d'une chaîne | get_byte('Th\000omas'::bytea, 4) | 109 |
length(chaîne) | int | Longueur de la chaîne binaire | length('jo\000se'::bytea) | 5 |
md5(chaîne) | text | Calcule le hachage MD5 de la chaîne et retourne le résultat en hexadécimal | md5('Th\000omas'::bytea) | 8ab2d3c9689aaf18 b4958c334c82d8b1 |
set_bit(chaîne, offset, newvalue) | bytea | Positionne un bit dans une chaîne | set_bit('Th\000omas'::bytea, 45, 0) | Th\000omAs |
set_byte(chaîne, offset, newvalue) | bytea | Positionne un octet dans une chaîne | set_byte('Th\000omas'::bytea, 4, 64) | Th\000o@as |
get_byte et set_byte prennent en compte le premier octet d'une chaîne binaire comme l'octet numéro zéro. get_bit et set_bit comptent les bits à partir de la droite pour chaque octet. Par exemple, le bit 0 est le bit le moins significatif du premier octet et le bit 15 est le bit le plus significatif du second octet.
Voir aussi la fonction d'agrégat string_agg dans Section 9.20, « Fonctions d'agrégat ».