OCTET_LENGTH 函数 - Amazon Redshift

OCTET_LENGTH 函数

以字节数形式返回指定字符串的长度。

语法

OCTET_LENGTH(expression)

参数

expression

CHAR 字符串、VARCHAR 字符串、VARBYTE 表达式或隐式计算为 CHARVARCHARVARBYTE 类型的表达式。

返回类型

INTEGER

OCTET_LENGTH 函数返回一个整数,表示输入字符串中的字节数。

如果输入的是字符串,LEN 函数将返回多字节字符串中字符的实际数量,而不是字节的数量。例如,存储 3 个 4 字节中文字符需要 VARCHAR(12) 列。OCTET_LENGTH 函数对于该字符串将返回 12,而 LEN 函数将对于该同一个字符串将返回 3

使用说明

如果 expressionCHAR 字符串,则此函数返回 CHAR 字符串的长度。例如,CHAR(6) 输入的输出为 CHAR(6)

如果 expressionVARCHAR 字符串,则计算尾随空格。

示例

当带有三个尾随空格的字符串 francais 强制转换为 CHARVARCHAR 类型时,要返回字节数,请使用以下示例。有关更多信息,请参阅 CAST 函数

SELECT OCTET_LENGTH(CAST('francais ' AS CHAR(15))) AS octet_length_char, OCTET_LENGTH(CAST('francais ' AS VARCHAR(15))) AS octet_length_varchar; +-------------------+----------------------+ | octet_length_char | octet_length_varchar | +-------------------+----------------------+ | 15 | 11 | +-------------------+----------------------+

要返回字符串 français 中的字节数和字符数,请使用以下示例。

SELECT OCTET_LENGTH('français'), LEN('français'); +--------------+-----+ | octet_length | len | +--------------+-----+ | 9 | 8 | +--------------+-----+

要在字符串 français 强制转换为 VARBYTE 时返回字节数,请使用以下示例。

SELECT OCTET_LENGTH(CAST('français' AS VARBYTE)); +--------------+ | octet_length | +--------------+ | 9 | +--------------+