8.10. Tipos de cadenas de bits #

Las cadenas de bits son cadenas de 1s y 0s. Se pueden usar para almacenar o visualizar máscaras de bits. Hay dos tipos de bits de SQL: bit(n) y bit varying(n), donde n es un entero positivo.

Los datos de tipo bit deben coincidir exactamente con la longitud n; es un error intentar almacenar cadenas de bits más cortas o más largas. Los datos de tipo bit varying son de longitud variable hasta la longitud máxima n; las cadenas más largas serán rechazadas. Escribir bit sin longitud es equivalente a bit(1), mientras que bit varying sin una especificación de longitud significa longitud ilimitada.

Note

Si se convierte explícitamente un valor de cadena de bits a bit(n), se truncará o se rellenará con ceros a la derecha para tener exactamente n bits, sin generar un error. Del mismo modo, si se convierte explícitamente un valor de cadena de bits a bit varying(n), se truncará a la derecha si tiene más de n bits.

Consulta la Section 4.1.2.5 para obtener información sobre la sintaxis de las constantes de cadenas de bits. Se dispone de operadores lógicos de bits y funciones de manipulación de cadenas; consulta la Section 9.6.

Example 8.3. Uso de los tipos de cadenas 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


Un valor de cadena de bits requiere 1 byte por cada grupo de 8 bits, más un costo adicional de 5 u 8 bytes dependiendo de la longitud de la cadena (pero los valores largos pueden comprimirse o moverse fuera de línea, como se explica en la Section 8.3 para las cadenas de caracteres).