SQL道場 文字列関数 OCTET_LENGTH関数

SQLで文字列の長さを得るOCTET_LENGTH関数について記載しています。

対応データベース:MySQL PostgreSQL ANSI

OCTET_LENGTH関数の文法

SELECT OCTET_LENGTH(文字列) FROM テーブル
引数文字列文字列型
返値数値型 バイト数が数値で戻ります。

OCTET_LENGTH関数は文字列長をバイト単位で返します。

MySQLのOCTET_LENGTH関数は固定長文字列、可変長文字列いずれの場合も実際に文字が入っている部分のバイト数を返しますのでLENGTH関数と同じ機能です。(マルチバイト文字は、複数のバイトとしてカウントされます。)

OCTET_LENGTH関数はLENGTH関数のシノニムです。

PostgreSQLでは可変長の文字列の場合は有効な部分のバイト数を数えます。固定長の文字列の場合は定義された文字列長が戻ります。

文字列の文字数を得たい場合は、CHAR_LENGTH関数を使用します。

MySQLの実行例

引数に指定した文字列のバイト数を取得するサンプル

/* MySQL 文字列のバイト数を求めるサンプル */
SELECT STR,OCTET_LENGTH(STR) FROM testdb.WORK;
OCTET_LENGTH関数サンプル実行結果