Cadeias de bits são cadeias de 1's e 0's. Podem ser usadas para
armazenar ou visualizar máscaras de bits. Existem dois tipos de
dados cadeia de bits no padrão SQL:
bit( e
n)bit varying(, onde
n)n é um número inteiro positivo.
Os dados do tipo de dados bit devem corresponder exatamente
ao comprimento n; causa erro tentar armazenar
cadeias de bits mais curtas ou mais longas. O tipo de dados
bit varying possui um comprimento variável de até no
máximo n bits; cadeias mais longas são
rejeitadas. Escrever bit sem especificar o comprimento
equivale a escrever bit(1), enquanto escrever
bit varying sem especificar o comprimento significa
um comprimento ilimitado.
Se for feita a conversão do valor de uma cadeia de bits para
bit(, a cadeia será
truncada ou preenchida com zeros à direita até o tamanho exato de
n)n bits, sem causar erro. De forma
análoga, se for feita a conversão do valor de uma cadeia de bits
para bit varying(, essa
cadeia será truncada à direita se tiver mais de
n)n bits.
Veja a Seção 4.1.2.5 para obter informações sobre a sintaxe das constantes cadeia de bits. Estão disponíveis operadores lógicos de bits e funções de tratamento de cadeias de bits; veja a Seção 9.6.
Exemplo 8.13. Usando os tipos de dados de cadeias 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');
ERRO: tamanho da cadeia de bits 2 não corresponde ao tipo bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101');
SELECT * FROM test;
a | b -----+----- 101 | 00 100 | 101
Um valor de cadeia de bits requer 1 byte para cada grupo de 8 bits, mais 5 ou 8 bytes extras dependendo do comprimento da cadeia (mas valores longos podem ser comprimidos ou movidos para fora da linha da tabela, conforme explicado na Seção 8.3 para as cadeias de caracteres).