Bit strings are strings of 1's and 0's. They can be used to store or visualize bit masks. There are two SQL bit types: bit(
and n
)bit varying(
, where n
)n
is a positive integer.
bit
type data must match the length n
exactly; it is an error to attempt to store shorter or longer bit strings. bit varying
data is of variable length up to the maximum length n
; longer strings will be rejected. Writing bit
without a length is equivalent to bit(1)
, while bit varying
without a length specification means unlimited length.
Note: If one explicitly casts a bit-string value to
bit(
, it will be truncated or zero-padded on the right to be exactlyn
)n
bits, without raising an error. Similarly, if one explicitly casts a bit-string value tobit varying(
, it will be truncated on the right if it is more thann
)n
bits.
Refer to Section 4.1.2.5 for information about the syntax of bit string constants. Bit-logical operators and string manipulation functions are available; see Section 9.6.
Example 8-3. Using the Bit String Types
1 2 3 4 5 6 7 8 9 10 | 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' ); <samp class= "COMPUTEROUTPUT" >ERROR: bit string length 2 does not match type bit (3)</samp> INSERT INTO test VALUES (B '10' :: bit (3), B '101' ); SELECT * FROM test; <samp class= "COMPUTEROUTPUT" > a | b -----+----- 101 | 00 100 | 101</samp> |
A bit string value requires 1 byte for each group of 8 bits, plus 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in Section 8.3 for character strings).
Please login to continue.