26.4.5.5 format_statement()函数

给定一个字符串(通常 table 示一个 SQL 语句),将其减小到statement_truncate_len配置选项给定的长度,然后返回结果。如果字符串短于statement_truncate_len,则不会发生截断。否则,字符串的中间部分将被省略号(...)代替。

此功能对于将从 Performance Schematable 中检索的可能很长的语句格式化为已知的固定最大长度很有用。

Parameters
  • statement LONGTEXT:要格式化的语句。
Configuration Options

可以使用以下配置选项或其相应的用户定义变量(请参见第 26.4.2.1 节“ sys_configtable”)来修改format_statement()操作:

  • statement_truncate_len , @sys.statement_truncate_len

format_statement()函数返回的语句的最大长度。较长的语句将被截断为此长度。默认值为 64.

Return Value

LONGTEXT值。

Example

默认情况下,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 |
+-----------------------------------+