
# 跨源RDS表，执行insert overwrite提示Incorrect string value错误怎么办？
#### 问题现象
客户在数据治理中心DataArts Studio创建DLI的跨源RDS表，执行insert overwrite语句向RDS写入数据报错：DLI.0999: BatchUpdateException: Incorrect string value: '\\xF0\\x9F\\x90\\xB3' for column 'robot_name' at row 1。
#### 原因分析
客户的数据中存在emoj表情，这些表情是按照四个字节一个单位进行编码的，而通常使用的utf-8编码在mysql数据库中默认是按照三个字节一个单位进行编码的，这个原因导致将数据存入mysql数据库时出现错误。
出现该问题可能原因如下：
- 数据库编码问题。
 
#### 处理步骤
修改字符集为utf8mb4。
1. 执行如下SQL更改数据库字符集。 
   ```
   ALTER DATABASE DATABASE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
   ```
   
   
2. 执行如下SQL更改表字符集。 
   ```
   ALTER TABLE TABLE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
   ```
   
   
3. 执行如下SQL更改表中所有字段的字符集。 
   ```
   ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
   ```
   
   
 
#### 参考信息
[如何确保RDS for MySQL数据库字符集正确](https://support.huaweicloud.com/rds-mysql_faq/rds_faq_0122.html)
