zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL Error number: MY-013978; Symbol: ER_BULK_PARSER_UNEXPECTED_CHAR_AFTER_ENDING_ENCLOSED_BY_LOG; SQLSTATE: HY000 报错 故障修复 远程处理

mysqllog 故障 处理 远程 报错 修复 Error
2023-06-13 09:19:55 时间
MySQL Error number: MY-013978; Symbol: ER_BULK_PARSER_UNEXPECTED_CHAR_AFTER_ENDING_ENCLOSED_BY_LOG; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释

Error number: MY-013978; Symbol: ER_BULK_PARSER_UNEXPECTED_CHAR_AFTER_ENDING_ENCLOSED_BY_LOG; SQLSTATE: HY000

Message: Unexpected characters after ending ENCLOSED BY character found at row %ld in file %s .

错误说明

该错误代码 MY-013978 为MySQL在查询时所可能出现的错误。ER_BULK_PARSER_UNEXPECTED_CHAR_AFTER_ENDING_ENCLOSED_BY_LOG 标志着在查询时在被括号括起来的ENDING后出现了一个意外的字符。更确切的报错信息应为Bulk load data conversion error (truncation) in row n: Unexpected character after ending enclosed BY。

常见案例

该错误的出现通常源于一个不当的BULK插入查询语句中段末缺少分隔符,例如BULK插入语句如下:

LOAD DATA INFILE data.csv

INTO TABLE TableName

FIELDS TERMINATED BY ,

ENCLOSED BY

LINES TERMINATED BY \n

该语句中FIELDS TERMINATED BY指定了字段的分隔符为逗号,而ENCLOSED BY则是指每个字段都要用双引号来括起来,这种查询语句要求每行的各个数据字段之间的分隔符、字段内的元素分隔符以及数据末尾的结束符都要严格符合要求才不会出现意外字符的错误。

解决方法

当查询时出现该错误时,可以尝试在BULK插入语句中加入IGNORE n LINES关键字来跳过末尾缺失分隔符可能引发的错误,例如:

LOAD DATA INFILE data.csv

INTO TABLE TableName

FIELDS TERMINATED BY ,

ENCLOSED BY

LINES TERMINATED BY \n

IGNORE 1 LINES

以上语句将在查询时跳过一行,从而使得查询在缺失分隔符引发的错误可以被跳过,有效解决MY-013978的问题。此外,也可以尝试将当前的插入语句修改,使得在BULK插入查询中完整地指定所有的分隔符,通过调整和补充语句中各分隔符的位置,也可以有效地解决MY-013978错误发生。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL Error number: MY-013978; Symbol: ER_BULK_PARSER_UNEXPECTED_CHAR_AFTER_ENDING_ENCLOSED_BY_LOG; SQLSTATE: HY000 报错 故障修复 远程处理