LENGTHB

说明

求字符串长度(字节数)。

语法

lengthb ::=

参数

character_expression

是CHAR, VARCHAR或TEXT类型的字符串,可以是常量,变量或者表中的列。

返回值

INT4类型的字符串长度。

注解

如果表达式不是CHAR,VARCHAR或TEXT类型,请用CAST将其显示转为这三种类型之一然后再计算其长度。转换请参见 数据类型的强制转化规则

示例

示例1: 使用 LENGTHB 计算字符串所占字节数

--  使用 LENGTHB 计算字符串所占字节数
--  CHAR或VARCHAR类型不包含输入字符串右边的空格
SELECT LENGTHB(' a');
LENGTHB(int)      |
------------------
2                 |
总数目:1


SELECT LENGTHB(' ab   '::CHAR(20));
LENGTHB(int)      |
------------------
20                |
总数目:1


SELECT LENGTHB(' ab   '::TEXT);
LENGTHB(int)      |
------------------
6                 |
总数目:1


SELECT LENGTHB(' ab   '::VARCHAR(20));
LENGTHB(int)      |
------------------
6                 |
总数目:1

示例2: 打开 ENABLE_CHARACTER_LENGTH 计算字符串所占字节数(以 GBK 编码库为例)

--  打开 ENABLE_CHARACTER_LENGTH
SET ENABLE_CHARACTER_LENGTH = TRUE;


--  计算字符串长度(以 GBK 编码库为例)
SELECT LENGTH(' 你好   '::VARCHAR(20));
LENGTH(int)      |
-----------------
6                |
总数目:1


--  关闭 ENABLE_CHARACTER_LENGTH
SET ENABLE_CHARACTER_LENGTH = FALSE;


--  计算字符串长度
SELECT LENGTH(' 你好   '::VARCHAR(20));
LENGTH(int)      |
-----------------
8                |
总数目:1


--  重置参数
RESET ENABLE_CHARACTER_LENGTH;

示例3: 使用 LENGTHB 计算字符串所占字节数(打开兼容 ORACLE 参数)

--  计算字符串所占字节数(打开兼容 ORACLE 参数)
--  CHAR 类型计算长度就会是其定义长度
SELECT LENGTHB(' ab   '::char(20));
LENGTHB(int)      |
------------------
20                |
总数目:1


--  VARCHAR 类型计算长度会包含末尾空格
SELECT LENGTHB(' ab   '::varchar(20));
LENGTHB(int)      |
------------------
6                 |
总数目:1