OCTET_LENGTH()
<< NULLIF() | FB 2.5 Language Reference | OVERLAY() >>
<< NULLIF() | FB 2.1 Language Reference | OVERLAY() >>
<< NULLIF() | FB 2.0 Language Reference | RDB$GET_CONTEXT() >>
OCTET_LENGTH()
Added in: 2.0
Changed in: 2.1
Description
Gives the length in bytes (octets) of the input string. For multi-byte character sets, this may be less than the number of characters times the "formal" number of bytes per character as found in RDB$CHARACTER_SETS
.
Note: With arguments of type CHAR
, this function takes the entire formal string length (e.g. the declared length of a field or variable) into account. If you want to obtain the "logical" byte length, not counting the trailing spaces, right-TRIM
the argument before passing it to OCTET_LENGTH
.
Result type: INTEGER
Syntax
OCTET_LENGTH (str)
BLOB support: Since Firebird 2.1, this function fully supports text BLOBs of any length and character set.
Examples
select octet_length('Hello!') from rdb$database -- returns 6 select octet_length(_iso8859_1 'Grüß di!') from rdb$database -- returns 8: ü and ß take up one byte each in ISO8859_1 select octet_length (cast (_iso8859_1 'Grüß di!' as varchar(24) character set utf8)) from rdb$database -- returns 10: ü and ß take up two bytes each in UTF8 select octet_length (cast (_iso8859_1 'Grüß di!' as char(24) character set utf8)) from rdb$database -- returns 26: all 24 CHAR positions count, and two of them are 2-byte
See also:
BIT_LENGTH()
CHARACTER_LENGTH()
Firebird Null Guide: Internal functions and directives
back to top of page
<< NULLIF() | FB 2.5 Language Reference | OVERLAY() >>
<< NULLIF() | FB 2.1 Language Reference | OVERLAY() >>
<< NULLIF() | FB 2.0 Language Reference | RDB$GET_CONTEXT() >>