Les chaînes de bits sont des chaînes de 0 et de 1. Elles peuvent être
utilisées pour stocker ou visualiser des masques de bits.
Il y a deux types bits en SQL :
bit(
et
n
)bit varying(
, avec
n
)n
un entier positif.
Les données de type bit
doivent avoir une longueur de
n
bits exactement. Essayer de lui affecter une
chaîne de bits plus longue ou plus courte déclenche une erreur.
Les données de type bit varying
ont une longueur variable,
d'au maximum n
bits ;
les chaînes plus longues sont rejetées.
Écrire bit
sans longueur est équivalent à
bit(1)
, alors que bit varying
sans
longueur indique une taille illimitée.
Lors du transtypage explicite (cast) d'une chaîne de bits en
champ de type bit(
, la chaîne
obtenue est complétée avec des zéros ou bien tronquée pour obtenir une
taille de n
)n
bits exactement, sans que cela
ne produise une erreur. De la même façon, si une chaîne de bits est
explicitement transtypée en un champ de type
bit varying(
, elle est tronquée
si sa longueur dépasse n
)n
bits.
Voir la Section 4.1.2.5 pour plus d'information sur la syntaxe des constantes en chaîne de bits. Les opérateurs logiques et les fonctions de manipulation de chaînes sont décrits dans la Section 9.6.
Exemple 8.3. Utiliser les types de chaînes de bits
CREATE TABLE test (a BIT(3), b BIT VARYING(5)); INSERT INTO test VALUES (B'101', B'00'); INSERT INTO test VALUES (B'10', B'101');ERROR: bit string length 2 does not match type bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101'); SELECT * FROM test;a | b -----+----- 101 | 00 100 | 101
Une valeur pour une chaîne de bits nécessite un octet pour chaque groupe de huit bits, plus cinq ou huit octets d'en-tête suivant la longueur de la chaîne (les valeurs longues peuvent être compressées ou déplacées, comme expliqué dans Section 8.3 pour les chaînes de caractères).