8.9. Tipos para cadeias de bits

As cadeias de bits são cadeias de zeros e uns. Podem ser usadas para armazenar ou visualizar máscaras de bits. Existem dois tipos de dado para bits no SQL: bit(n) e bit varying(n), onde n é um número inteiro positivo.

Os dados para o tipo bit devem possuir exatamente o comprimento n; é errado tentar armazenar cadeias de bits mais curtas ou mais longas. 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 equivale a escrever bit(1), enquanto bit varying sem a especificação do comprimento significa comprimento ilimitado.

Nota: Se for feita uma conversão explícita do valor de uma cadeia de bits para bit(n), os bits serão truncados ou completados à direita com zeros para ficar exatamente com n bits, sem ocasionar erro. De forma semelhante, se for feita uma conversão explícita do valor de uma cadeia de bits para bit varying(n), os bits serão truncados à direita se houver mais de n bits.

Nota: Antes do PostgreSQL 7.2, os dados do tipo bit eram sempre truncados em silêncio ou completados à direita com zeros, com ou sem uma conversão explícita. Este comportamento foi modificado para ficar em conformidade com o padrão SQL.

Consulte a Seção 4.1.2.3 para obter informações sobre a sintaxe das constantes do tipo cadeia de bits. Estão disponíveis operadores lógicos para bit e funções para manipulação de cadeias de bits; consulte o Capítulo 9.

Exemplo 8-9. Utilização dos tipos para 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');
ERRO:  comprimento da cadeia de bits 2 não corresponde ao tipo bit(3)
INSERT INTO teste VALUES (B'10'::bit(3), B'101');
SELECT * FROM teste;

  a  |  b
-----+-----
 101 | 00
 100 | 101
SourceForge.net Logo CSS válido!