Extracted SQL state class ‘22’ from value ‘22001’
问题描述
最近在完成一个项目时,需要实现在网页从excel导入数据,然后保存到数据库中.在测试阶段时发现运行没有任何问题,但是实际部署过程中发现,用户上传excel导入数据失败,日志如下:
Extracted SQL state class '22' from value '22001'
1
解决办法
搞清楚此异常的原因,需要查询sql的执行状态表:
这条异常的意思是说,要保存的数据超过了数据库中对该字段定义的最大长度,检查数据表的定义,修改不合适字段定义,问题解决
类代码22:数据异常
SQLSTATE 值 含义
22001 字符数据,发生右截断;例如,更新或插入值对于列来说太长(字符串),或者日期时间值由于太小而不能赋给主机变量。
22002 检测到空值或缺少指示符参数;例如,不能将空值赋给主机变量,因为没有指定指示符变量。
22003 数字值超出范围。
22004 不能从定义为 PARAMETER STYLE GENERAL 的过程或者从用非空自变量调用的类型保留方法中返回空值。
22007 检测到无效的日期时间格式;即指定了无效的字符串表示法或值。
22008 发生日期时间字段溢出;例如,对日期或时间戳记算术运算的结果不在有效日期范围之内。
2200G 大多数特定类型都不匹配。
22011 发生子字符串错误;例如,SUBSTR 的自变量超出范围。
22012 用零作除数是无效的。
22018 对于 CAST、DECIMAL、FLOAT、或 INTEGER 标量函数,字符值是无效的。
22019 LIKE 谓词有无效转义字符。
22021 某字符不在编码字符集中。
22024 以 NUL 结束的输入主机变量或参数不包含 NUL。
22025 LIKE 谓词字符串模式包含无效的转义字符。
2202D 配合变异方法使用了空实例。
2202H 在 TABLESAMPLE 子句中指定的样本大小无效。
22501 变长字符串的长度控制字段为负值或大于最大值。
22504 混合数据值是无效的。
22506 对日期时间专用寄存器的引用无效,因为 TOD 时钟发生故障或操作系统时区参数超出范围。
22522 CCSID 值根本无效,对数据类型或子类型无效,或对编码方案无效。
22526 键变换函数没有生成任何行或生成了重复的行。
22527 对多行 INSERT 操作检测到了无效的输入数据。
---------------------
作者:纪晓岚爱coder
来源:CSDN
原文:https://blog.csdn.net/weixin_37815691/article/details/83042039
版权声明:本文为博主原创文章,转载请附上博文链接!