宣言
CHAR(value1,... [USING charset_name])
説明
各パラメータを整数に変換し、それらの整数のコード値に対応する文字で構成される文字列を返します。NULL 値は無視されます。
また、パラメータが255を超える場合、そのパラメータは複数の結果バイトに変換されます。例えば、CHAR(256) は CHAR(1,0) と等価であり、CHAR(256*256) は CHAR(1,0,0) と等価です。
デフォルトでは、CHAR() が返す文字列の文字セットは binary です。USING 句を使用して、返す文字セットを指定できます。
obclient> select CHARSET(char('')), CHARSET(char('' USING utf8mb4));
+-------------------+---------------------------------+
| CHARSET(char('')) | CHARSET(char('' USING utf8mb4)) |
+-------------------+---------------------------------+
| binary | utf8mb4 |
+-------------------+---------------------------------+
1 row in set
指定された文字セットで無効な値が返された場合、WARNING ウィンドウが表示されます。特に、sql_mode が STRICT_ALL_TABLES または STRICT_TRANS_TABLES に設定されている場合、指定された文字セットで無効な値が返された場合、NULL が返されます。
sql_mode の詳細については、sql_modeを参照してください。
obclient> SET SESSION sql_mode='STRICT_ALL_TABLES';
obclient> SELECT CHAR(399 USING utf8);
+----------------------+
| CHAR(399 USING utf8) |
+----------------------+
| NULL |
+----------------------+
1 row in set, 1 warning
例
obclient> SELECT CHAR(79,99,101,97,110,66,97.4,115,'101');
+------------------------------------------+
| CHAR(79,99,101,97,110,66,97.4,115,'101') |
+------------------------------------------+
| OceanBase |
+------------------------------------------+
1 row in set