【YashanDB知识库】收集统计信息时报错YAS-00507 date/timestamp value overflow

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【YashanDB知识库】收集统计信息时报错YAS-00507 date/timestamp value overflow

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7817899.html?templateId=1718516

问题现象

收集统计信息时报错:

SQL> exec DBMS_STATS.GATHER_TABLE_STATS('USER', 'T', null, 1, FALSE, 'FOR ALL COLUMNS SIZE AUTO', 8, 'GLOBAL', TRUE);

YAS-00507 date/timestamp value overflow

问题的风险及影响

统计信息无法收集成功

问题影响的版本

所有的YashanDB版本

问题发生原因

表中的timestamp列实际存储的数据,超出了timestamp的范围。

timestamp的范围为 1-1-1 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

解决方法及规避方式

1、在收集统计信息时指定列(method_opt指定为for colums (col_1) size auto),确认是哪一列导致的问题。

示例:exec DBMS_STATS.GATHER_TABLE_STATS('USER', 'T', null, 1, FALSE, 'for columns (b) size auto', 8, 'GLOBAL', TRUE);

2、使用jdbc查询此列,结果集用getString方法获取,查看实际存储的值。

示例:

PreparedStatement ps = conn.prepareStatement("select b from ggg order by b desc");

ResultSet rs = ps.executeQuery();

while(rs.next()){

System.out.println(rs.getString(1));

}

最后控制台输出中,年的部分大于9999的,就是异常数据。

示例(前两行为异常数据):

10001-01-12 01:01:01.0

10000-01-12 01:01:01.0

9999-01-12 01:01:01.0

9998-01-12 01:01:01.0

3、找到异常的数据行后,可以将此行数据删除;或者将对应列的数据更新为合法的值。操作完成后即可正常收集统计信息。

目录
打赏
0
9
9
0
95
分享
相关文章
【YashanDB知识库】YashanDB run.log中有slow log queue is full信息
【YashanDB知识库】YashanDB run.log中有slow log queue is full信息
【YashanDB知识库】kettle做增量同步,出现报错
【YashanDB知识库】kettle做增量同步,出现报错
【YashanDB知识库】审计表UNIFIED_AUDIT_TRAIL出现YAS-00220
【YashanDB知识库】审计表UNIFIED_AUDIT_TRAIL出现YAS-00220
【YashanDB 知识库】YMP 从达梦迁移到崖山,报错:不能识别文件路径,没找到 csv 文件
【YashanDB 知识库】YMP 从达梦迁移到崖山,报错:不能识别文件路径,没找到 csv 文件
【YashanDB 知识库】使用 Reverse 索引的解决自增序列做索引,插入性能大幅提升
【YashanDB 知识库】使用 Reverse 索引的解决自增序列做索引,插入性能大幅提升
【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事
【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事
【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常
【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常
【YashanDB知识库】YashanDB JDBC查询时抛出YAS-02094
【YashanDB知识库】YashanDB JDBC查询时抛出YAS-02094
【YashanDB知识库】数据库用户所拥有的权限查询
【YashanDB知识库】数据库用户所拥有的权限查询
【YashanDB知识库】查询空间数据提示This socket has been closed.
【YashanDB知识库】查询空间数据提示This socket has been closed.