默认新建库和会话字符集(def_charset)
📄字数 723
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
新建用户库和新建连接时使用的默认字符集。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | VARCHAR |
| 默认值 | GBK |
| 取值范围 | {UTF8,GBK,GB18030,BINARY} |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数作为新建用户库和新建连接时使用的默认字符集(未显式指定 CHAR_SET 会话参数时)。
- 系统在对字符类数据进行处理时会涉及字符集转换,涉及的场景主要有:
| 涉及字符集转换的应用场景 |
|---|
| 1. 统计分析,记录表中各个字段的统计分析信息时(最大值、最小值、重复度和离散度),用户库字符集向系统库字符集转换; 2. 流式导入,连接字符集向库字符集转换; 3. 备份恢复,均采用库字符集进行处理; 4. 词法解析,处理标识符时,连接字符集向系统字符集(UTF8)转换;处理字符串常量时,连接字符集向库字符集转换; 5. 动态 SQL 传参,处理参数名时,连接字符集向系统字符集(UTF8)转换;处理参数值时,连接字符集向库字符集转换; 6. 结果集返回,处理字段描述信息时,系统字符集(UTF8)向连接字符集转换;处理数据内容时,库字符集向连接字符集转换。 |
注意
- 客户端在发送 SQL 请求时务必保证连接上配置的字符集与客户端一致,否则可能出现字符集转换事故。
示例
sql
-- 在线修改 def_charset
SQL> SET def_charset TO GBK;
-- 在线查看 def_charset
SQL> SHOW def_charset;
/*
* 场景一:
* 1. def_charset = gbk;
*/
SQL> CREATE DATABASE db;
SQL> SELECT char_set FROM sysdba.sys_databases where db_name='db'; -- 输出 'GBK';