| Documentation PostgreSQL 9.0.23 > Langage SQL > Fonctions et opérateurs > Fonctions et opérateurs de chaînes binaires | |
| PrécédentFonctions et opérateurs de chaînes | Fonctions et opérateurs sur les chaînes de bitsSuivant |
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 utilise 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.9, « Fonctions et opérateurs SQL pour chaînes binaires ». PostgreSQLTM fournit aussi des versions de ces fonctions qui utilisant la syntaxe standard de l'appel de fonction (voir le Tableau 9.10, « Autres fonctions sur les chaînes binaires »).
Les résultats montrés en exemple sur cette page supposent que le paramètre serveur bytea_output est configuré à escape (le format traditionnel de PostgreSQL).
Tableau 9.9. 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'\047円gres\000円'::bytea | \\Post'gres000円 |
| octet_length( chaîne) | int | Nombre d'octets d'une chaîne binaire | octet_length( E'jo\000円se'::bytea) | 5 |
| overlay(string placing string from int [for int]) | bytea | Remplace une sous-chaîne | overlay(E'Th\000円omas'::bytea placing E'\002円\003円'::bytea from 2 for 3) | T\002円\003円mas |
| position( sous-chaîne in chaîne) | int | Emplacement de la sous-chaîne indiquée | position( E'\000円om'::bytea in E'Th\000円omas'::bytea) | 3 |
| substring(chaîne [from int] [for int]) | bytea | Extrait une sous-chaîne | substring(E'Th\000円omas'::bytea from 2 for 3) | h000円o |
| 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'\000円Tom\000円'::bytea) | Tom |
Des fonctions supplémentaires de manipulations de chaînes binaires sont listées dans le Tableau 9.10, « 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.9, « Fonctions et opérateurs SQL pour chaînes binaires ».
Tableau 9.10. 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'\000円trim\000円'::bytea, E'\000円'::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(E'123\000456円', 'escape') | 123000456円 |
| 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 octal (\nnn) et des antislashs doubles. | encode(E'123\000456円'::bytea, 'escape') | 123000456円 |
| get_bit(string, offset) | int | Extrait un bit d'une chaîne | get_bit(E'Th\000円omas'::bytea, 45) | 1 |
| get_byte(string, offset) | int | Extrait un octet d'une chaîne | get_byte(E'Th\000円omas'::bytea, 4) | 109 |
| length (chaîne) | int | Longueur de la chaîne binaire | length(E'jo\000円se'::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\000円omas'::bytea) | 8ab2d3c9689aaf18 b4958c334c82d8b1 |
| set_bit(string, offset, newvalue) | bytea | Positionne un bit dans une chaîne | set_bit(E'Th\000円omas'::bytea, 45, 0) | Th000円omAs |
| set_byte(string, offset, newvalue) | bytea | Positionne un octet dans une chaîne | set_byte(E'Th\000円omas'::bytea, 4, 64) | Th000円o@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.