8.3.3. BIT_LENGTH()

Available in

DSQL, PSQL

Syntax

  1. BIT_LENGTH (string)
Table 125. BIT_LENGTH Function Parameter
ParameterDescription

string

An expression of a string type

Result type

INTEGER

Description

Gives the length in bits of the input string. For multi-byte character sets, this may be less than the number of characters times 8 times the “formal” number of bytes per character as found in RDB$CHARACTER_SETS.

With arguments of type CHAR, this function takes the entire formal string length (i.e. the declared length of a field or variable) into account. If you want to obtain the “logical” bit length, not counting the trailing spaces, right-TRIM the argument before passing it to BIT_LENGTH.

BLOB support

Since Firebird 2.1, this function fully supports text BLOBs of any length and character set.

Examples

  1. select bit_length('Hello!') from rdb$database
  2. -- returns 48
  3. select bit_length(_iso8859_1 'Grüß di!') from rdb$database
  4. -- returns 64: ü and ß take up one byte each in ISO8859_1
  5. select bit_length
  6. (cast (_iso8859_1 'Grüß di!' as varchar(24) character set utf8))
  7. from rdb$database
  8. -- returns 80: ü and ß take up two bytes each in UTF8
  9. select bit_length
  10. (cast (_iso8859_1 'Grüß di!' as char(24) character set utf8))
  11. from rdb$database
  12. -- returns 208: all 24 CHAR positions count, and two of them are 16-bit

See also

OCTET_LENGTH(), CHAR_LENGTH(), CHARACTER_LENGTH()