OCTET_LENGTH 関数 - Amazon Redshift

OCTET_LENGTH 関数

指定された文字列の長さをバイト数として返します。

構文

OCTET_LENGTH(expression)

引数

expression

CHAR 文字列、VARCHAR 文字列、VARBYTE 式、あるいは CHARVARCHAR、または VARBYTE 型に暗黙的に評価される式。

戻り型

INTEGER

OCTET_LENGTH 関数は、入力文字列のバイト数を示す整数を返します。

入力が文字列の場合、LEN関数は、マルチバイト文字列のバイト数ではなく、この文字列の実際の文字数を返します。例えば、4 バイトの中国語文字を 3 つ保存するためには、VARCHAR(12) 列が必要です。OCTET_LENGTH 関数はその文字の 12 を返し、LEN 関数は同じ文字列に対して 3 を返します。

使用に関する注意事項

CHAR 文字列である場合、この関数は CHAR 文字列の長さを返します。例えば、CHAR(6) 入力の出力は CHAR(6) です。

VARCHAR 文字列である場合、末尾のスペースはカウントされます。

末尾にスペースが 3 つある文字列 francaisCHAR および VARCHAR 型にキャストされる場合に、バイト数を返すには、次の例を使用します。詳細については、「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çaisVARBYTE にキャストされる場合にバイト数を返すには、次の例を使用します。

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