OCTET_LENGTH 関数
指定された文字列の長さをバイト数として返します。
構文
OCTET_LENGTH(expression)
引数
- expression
-
CHAR
文字列、VARCHAR
文字列、VARBYTE
式、あるいはCHAR
、VARCHAR
、またはVARBYTE
型に暗黙的に評価される式。
戻り型
- INTEGER
-
OCTET_LENGTH 関数は、入力文字列のバイト数を示す整数を返します。
入力が文字列の場合、LEN関数は、マルチバイト文字列のバイト数ではなく、この文字列の実際の文字数を返します。例えば、4 バイトの中国語文字を 3 つ保存するためには、
VARCHAR(12)
列が必要です。OCTET_LENGTH 関数はその文字の12
を返し、LEN 関数は同じ文字列に対して3
を返します。
使用に関する注意事項
式が CHAR
文字列である場合、この関数は CHAR
文字列の長さを返します。例えば、CHAR(6)
入力の出力は CHAR(6)
です。
式が VARCHAR
文字列である場合、末尾のスペースはカウントされます。
例
末尾にスペースが 3 つある文字列 francais
が CHAR
および 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çais
が VARBYTE
にキャストされる場合にバイト数を返すには、次の例を使用します。
SELECT OCTET_LENGTH(CAST('français' AS VARBYTE));
+--------------+ | octet_length | +--------------+ | 9 | +--------------+