9.5. Fonctions et opérateurs de chaînes binaires

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 avec une syntaxe spéciale où certains mots clés sont employés à la place de virgules pour séparer les arguments. Les détails sont présentés dans Tableau 9.8, « Fonctions et opérateurs SQL pour chaînes binaires ». Quelques fonctions sont aussi implantées avec la syntaxe habituelle de l'appel de fonction (voir le Tableau 9.9, « Autres fonctions sur les chaînes binaires »).

Tableau 9.8. 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 E'\\\\Post'::bytea || E'\\047gres\\000'::bytea \\Post'gres\000
get_bit(chaîne, décalage) int Extrait un bit d'une chaîne get_bit(E'Th\\000omas'::bytea, 45) 1
get_byte(chaîne, décalage) int Extrait un octet d'une chaîne get_byte(E'Th\\000omas'::bytea, 4) 109
octet_length( chaîne) int Nombre d'octets dans une chaîne binaire octet_length( E'jo\\000se'::bytea) 5
position( sous-chaîne in chaîne) int Emplacement de la sous-chaîne indiquée position( E'\\000om'::bytea in E'Th\\000omas'::bytea) 3
set_bit(chaîne, décalage, nouvelle_valeur) bytea Positionne un bit de la chaîne set_bit(E'Th\\000omas'::bytea, 45, 0) Th\000omAs
set_byte(chaîne, décalage, nouvelle_valeur) bytea Positionne un octet de la chaîne. set_byte( E'Th\\000omas'::bytea, 4, 64) Th\000o@as
substring(chaîne [from int] [for int]) bytea Extrait une sous-chaîne substring(E'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 d'octets de octets à partir du début et de la fin de chaîne trim(E'\\000'::bytea from E'\\000Tom\\000'::bytea) Tom

Des fonctions supplémentaires de manipulations de chaînes binaires sont listées dans le Tableau 9.9, « 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.8, « Fonctions et opérateurs SQL pour chaînes binaires ».

Tableau 9.9. 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 d'octets de octets à partir du début et de la fin de chaîne. btrim( E'\\000trim\\000'::bytea, E'\\000'::bytea) trim
decode(chaîne text, type text) bytea Décode la chaîne binaire chaîne auparavant codée avec encode. Le type de paramètre est le même que dans encode. decode(E'123\\000456', 'escape') 123\000456
encode(chaîne bytea, type text) text Code la chaîne binaire en sa représentation en ASCII seul. Les types supportés sont base64, hex, escape. encode(E'123\\000456'::bytea, 'escape') 123\000456
length (chaîne) int Longueur de la chaîne binaire length(E'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(E'Th\\000omas'::bytea) 8ab2d3c9689aaf18 b4958c334c82d8b1