他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

3.9. ビット列データ型

ビット列とは 1 と 0 のビットが連続したものです。ビットマスクを格納したり顕在化するために使用されます。SQL のビットデータ型には BIT(x) データ型と BIT VARYING(x) データ型の2 つのデータ型があって、ここで x は正の整数です。

BIT 型のデータは厳密に x で表される長さに一致しなければなりません。この長さより長いか短いビット列を格納しようとするとエラーになります。BIT VARYING 型のデータは最大長 x までの可変長です。最大長を越えるビット列は受け付けません。長さ指定のない BIT データ型は BIT(1) データ型と同一で、長さ指定のない BIT VARYING データ型は無限長を意味します。

Note: PostgreSQL 7.2 以前に於いて BIT データ型データは右側がゼロ詰めされていました。SQL 標準に準拠するため変更されました。ゼロ詰めのビット列を実装するには結合演算子と substring 関数の組合せを使用します。

ビット列定数に関する構文に付いての情報は Section 1.1.2.2 参照ください。ビット論理演算子とビット列操作関数が用意されています。Chapter 4 を参照してください。

Example 3-3. ビット列データ型を使って

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 does not match type bit(3)
(ERROR:  ビット列の長さがデータ型 bit(3) と一致しません。)
SELECT SUBSTRING(b FROM 1 FOR 2) FROM test;