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

Cette section décrit les fonctions et opérateurs pour examiner et manipuler des valeurs de type bytea.

SQL définit quelques fonctions de chaînes avec une syntaxe spéciale où certains mots clés, plutôt que des virgules, sont utilisés pour séparer les mots clés. Les détails font partie de Tableau 9-9. Quelques fonctions sont aussi implémentées en utilisant la syntaxe habituelle pour l'appel de fonction. (Voir Tableau 9-10.)

Tableau 9-9. Fonctions et opérateurs SQL pour les chaînes binaires

FonctionType renvoyéDescriptionExempleRésultat
chaîne || chaîne bytea Concaténation de chaîne '\\\\Post'::bytea || '\\047gres\\000'::bytea\\Post'gres\000
octet_length(chaîne)integerNombre d'octets dans une chaîne binaireoctet_length( 'jo\\000se'::bytea)5
position(sous-chaîne in chaîne)integerEmplacement de la sous-chaîne indiquéeposition('\\000om'::bytea in 'Th\\000omas'::bytea)3
substring(chaîne [from integer] [for integer])bytea Extrait la sous-chaîne substring('Th\\000omas'::bytea from 2 for 3)h\000o
trim([both] octets from chaînes) bytea Supprime la plus longue chaîne contenant seulement les octets dans octets au début et à la fin de chaîne trim('\\000'::bytea from '\\000Tom\\000'::bytea)Tom
get_byte(chaîne, décalage)integer Extrait un octet de la chaîne. get_byte('Th\\000omas'::bytea, 4)109
set_byte(chaîne, décalage, nouvelle_valeur)bytea Enregistre un octet dans la chaîne. set_byte('Th\\000omas'::bytea, 4, 64)Th\000o@as
get_bit(chaîne, décalage)integer Extrait un bit de la chaîne. get_bit('Th\\000omas'::bytea, 45)1
set_bit(chaîne, décalage, nouvelle_valeur)bytea Enregistre un bit dans la chaîne. set_bit('Th\\000omas'::bytea, 45, 0)Th\000omAs

Les fonctions de manipulations supplémentaires de chaînes binaires sont disponibles et sont listées dans Tableau 9-10. Certaines sont utilisées en interne pour implémenter les fonctions de chaînes suivant le standard SQL listées dans Tableau 9-9.

Tableau 9-10. Autres fonctions sur les chaînes binaires

FonctionType retournéDescriptionExempleRésultat
btrim(chaîne bytea octets bytea)bytea Supprime la plus longue chaîne consistant seulement des octets de octets à partir du début et de la fin de chaîne. btrim('\\000trim\\000'::bytea, '\\000'::bytea)trim
length (chaîne)integer Longueur de la chaîne binaire length('jo\\000se'::bytea)5
decode(chaîne text, type text) bytea Décode la chaîne binaire à partir de chaîne auparavant codé avec encode. Le type de paramètre est identique à celui d'encode. decode('123\\000456', 'escape')123\000456
encode(chaîne bytea, type text) text Code la chaîne binaire en une représentation en ASCII uniquement. Les types supportés sont : base64, hex, escape. encode('123\\000456'::bytea, 'escape')123\000456