文字列 (通常は SQL ステートメントを表します) を指定すると、statement_truncate_len
構成オプションで指定された長さまで短くなり、結果が返されます。 文字列が statement_truncate_len
より短い場合、切捨ては行われません。 それ以外の場合、文字列の中央部分は省略記号 (...
) に置き換えられます。
この関数は、「パフォーマンススキーマ」テーブルから取得した長いステートメントを既知の固定最大長に書式設定する場合に便利です。
format_statement()
操作は、次の構成オプションまたは対応するユーザー定義変数を使用して変更できます (セクション28.4.2.1「sys_config テーブル」 を参照):
-
statement_truncate_len
,@sys.statement_truncate_len
format_statement()
関数によって戻されるステートメントの最大長。 長いステートメントはこの長さに切り捨てられます。 デフォルトは 64 です。
デフォルトでは、format_statement()
は 64 文字以下のステートメントを切り捨てます。 @sys.statement_truncate_len
を設定すると、現在のセッションの切捨て長が変更されます:
mysql> SET @stmt = 'SELECT variable, value, set_time, set_by FROM sys_config';
mysql> SELECT sys.format_statement(@stmt);
+----------------------------------------------------------+
| sys.format_statement(@stmt) |
+----------------------------------------------------------+
| SELECT variable, value, set_time, set_by FROM sys_config |
+----------------------------------------------------------+
mysql> SET @sys.statement_truncate_len = 32;
mysql> SELECT sys.format_statement(@stmt);
+-----------------------------------+
| sys.format_statement(@stmt) |
+-----------------------------------+
| SELECT variabl ... ROM sys_config |
+-----------------------------------+