PostgreSQLLa base de données la plus sophistiquée au monde.

8.9. Type chaîne de bits

Les chaînes de bits sont des chaînes de 0 et de 1. Ils peuvent être utilisés pour stocker ou visualiser des masques de bits. Il y a deux types chaînes de bits SQL : bit(n) et bit varying(n), où n est un entier positif.

Les données de type bit doivent avoir une longueur de n bits exactement. Essayer d'y 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, mais ne peuvent dépasser une taille de 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.

[Note]

Note

Lors d'une conversion explicite (cast) d'une chaîne de bits vers un champ de type bit(n), la chaîne obtenue sera complétée avec des zéros ou bien tronquée pour obtenir une taille de n bits exactement, sans que cela produise une erreur. De la même façon, si une chaîne de bits est explicitement convertie vers un champ de type bit varying(n), elle sera tronquée si elle fait plus de n bits.

[Note]

Note

Avant PostgreSQL™ 7.2, les données de type bit étaient toujours tronquées (ou complétées avec des zéros) silencieusement, que la conversion soit explicite ou non. Ce comportement a été modifié pour se conformer au standard SQL.

Voir la Section 4.1.2.3, « Constantes de chaînes de bits » pour plus d'information sur la syntaxe des constantes de chaînes de bits. Les opérateurs logiques bit à bit et les manipulations de chaînes de bits sont décrits dans la Section 9.6, « Fonctions et opérateurs sur les chaînes de bits ».

Exemple 8.3. Utilisation des 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