Cadeias de bits são cadeias contendo apenas dígitos 1 e 0. Podem ser armazenadas ou visualizar máscaras de bits. Existem dois tipos de dado SQL para bits: BIT(n) e BIT VARYING(n), onde n é um número inteiro positivo.
O tipo de dado BIT deve corresponder ao tamanho n exatamente; ocasiona erro tentar armazenar uma cadeia de bits mais curta ou mais longa. O tipo de dado BIT VARYING possui um comprimento variável até o máximo de n; cadeias mais longas são rejeitadas. Escrever BIT sem o comprimento é equivalente a escrever BIT(1), enquanto BIT VARYING sem a especificação do comprimento significa comprimento ilimitado.
Nota: Se for feita uma transformação explícita do valor de uma cadeia de bits para BIT(n), os bits serão truncados ou preenchidos à direita com zeros para ficar exatamente com n bits, sem ocasionar erro. De forma semelhante, se for feita uma transformação explícita do valor de uma cadeia de bits para BIT VARYING(n), os bits serão truncados à direita caso existam mais de n bits.
Nota: Antes do PostgreSQL 7.2, os dados do tipo BIT eram sempre truncados ou completados à direita com zeros, com ou sem uma transformação explícita. Este comportamento foi modificado para ficar de acordo com o padrão SQL.
Consulte a Seção 1.1.2.2 para obter informações relativas à sintaxe das constantes cadeias de bits. Operadores lógicos para bit e funções de manipulação de cadeias estão disponíveis; veja o Capítulo 6.
Exemplo 5-3. Utilização dos tipos cadeia de bits
CREATE TABLE teste (a BIT(3), b BIT VARYING(5)); INSERT INTO teste VALUES (B'101', B'00'); INSERT INTO teste VALUES (B'10', B'101'); ERROR: Bit string length 2 does not match type BIT(3) INSERT INTO teste VALUES (B'10'::bit(3), B'101'); SELECT * FROM teste; a | b -----+----- 101 | 00 100 | 101