使用navicat执行存储过程时报错位置的查找及问题总结

目录

1.问题说明

2.解决方案

3.总结


1.问题说明

使用navicat执行存储过程时报错如下:

### Error querying database.  Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 转换 varchar 值'400444430496190464' 时溢出了 INT2 列。请使用较大的整数列。
### The error may exist in file [D:\IdeaProjects\KingDataBase-server\em\target\classes\mapper\master\dictionaries\ColEntryMapper.xml]
### The error may involve com.kingagroot.info.em.mvc.persistent.mapper.master.dictionaries.ColEntryMapper.execRemove
### The error occurred while handling results
### SQL: alter table PEDIGREE drop constraint PEDIGREE_FKImage400444430496190464          ;              alter table PEDIGREE drop column C_IMGELIN123          ;              delete from pedigree_log where col_id = '400444430496190464'          ;              exec spPEMRemoveDocCol 1,400444430496190464          ;              alter table EXP_PRE drop constraint EXP_PRE_FKImage400444430496190464          ;              alter table EXP_PRE drop column C_IMGELIN123          ;              exec spPEMRemoveDocCol 20,400444430496190464
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 转换 varchar 值'400444430496190464' 时溢出了 INT2 列。请使用较大的整数列。
; uncategorized SQLException; SQL state [S0002]; error code [244]; 转换 varchar 值'400444430496190464' 时溢出了 INT2 列。请使用较大的整数列。

错误原因是数据库中字段的内容和字段类型不符合,并且超过字段类型的数据范围。 在 查询条件中及更新项目中都会出现这样的问题

2.解决方案

修改数据库的字段类型为nvarchar(50)

3.总结

在navicat中执行较长的存储过程时,会出现难以定位出错位置的问题,可以在存储过程中使用print语句输出标识符,如果没有进行输出,就可以判断此标识符和上一个标识符之间存在问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值