java.sql.DataTruncation: Data truncation问题处理

java.sql.DataTruncation: Data truncation
	at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:382)
	at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)
	at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632)
	at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)

    一看这个错误提示就知道是数据内容过长,数据库列给的长度不够。原因知道,但是排查这个问题花了我差不多三个小时,就是一番的跟踪调试,把全部内容都去掉,就剩一个ID主键,直接插入还提示这个错误,真的弄的百思不得其解。最后把出入语句放在sql server客户端执行,报的错终于让我豁然开朗了。

消息 8115,级别 16,状态 2,第 1 行
将 expression 转换为数据类型 datetime 时出现算术溢出错误。
语句已终止。

 意思是转换日期错误,但是我没有给这个类型的字段赋值,一想到sql server有个默认值,最后把那个默认值去掉就解决问题了。

 

     教训:sqlserver 建字段的时候,要注意默认值的设置,特别是日期时间类型的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值