Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事
OCTET_LENGTH 関数
指定された文字列の長さをバイト数として返します。
構文
OCTET_LENGTH(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 | +--------------+