Documentation PostgreSQL 10.23 »
Langage SQL »
Fonctions et opérateurs »
Fonctions et opérateurs de chaînes binaires9.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 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. PostgreSQL
fournit aussi des versions de ces fonctions qui utilisent la syntaxe standard
de l'appel de fonction (voir le Tableau 9.12).
Note
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. 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.
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.