sql中字符串被截断的问题调试

今天下午在程序调用一个存储过程的时候出现了字符串截断问题,因为自己是实习生,而且对sql比较生疏,所以花了一个多小时才排查出来。

首先是查看报错信息,

执行存储过程 {call dbo.statisticAdvanceReport(?,?,?,?,?,?,?,?,?,?,?,?,?,?)} 出错:对象名 'b' 无效。
16:03:26,124 ERROR [STDERR] com.ztkj.batj.exception.DaoException: 执行存储过程 {call dbo.statisticAdvanceReport(?,?,?,?,?,?,?,?,?,?,?,?,?,?)} 出错:对象名 'b' 无效。

判断是调用存储过程时出错,然后先看界面传入参数有无出现字符串出错,截断。之后找到相应存储过程,把界面参数传入存储过程进行执行,发现仍然报这个错误,证明是存储过程的问题。

下一步,在存储过程把涉及的查询语句输出,发现其中有一部分语句被截断,造成查询语句出错。

找到那句的相关变量,看是否变量长度不够,造成截断?

因为其中涉及到了一个函数的调用,函数里面的返回结果的长度没有考虑到,所以浪费了很多时间。

最终问题就是在函数返回的数据类型的问题,长度过短,导致数据被截断。

虽然不是大问题,但是整个处理问题的流程,思路可以记录下来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值