OCTET_LENGTH 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

OCTET_LENGTH 函數

傳回指定字串的長度 (以位元組為單位)。

語法

OCTET_LENGTH(expression)

引數

運算式

CHAR 字串、VARCHAR 字串、VARBYTE 運算式或隱含評估為 CHARVARCHARVARBYTE 類型的運算式。

傳回類型

INTEGER

OCTET_LENGTH 函數會傳回整數,指出輸入字串中的位元組數。

如果輸入字串是字元字串,則 LEN 函數會傳回多位元組字串中的實際字元數,而不是位元組數。例如,需要 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 | +--------------+