[求助]一个sql在查询分析器里执行没问题,jdbc中就出错

x0y1z2 2008-10-09 10:53:30
ERROR [http-80-Processor25] (CommonDAO.java:461) - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]向 substring 函数传递了无效的 length 参数。 Query: select max(convert(decimal(10,0),substring(contractno,len(wxhtno)+1,len(contractno)-len(wxhtno)-1))) from domestic_contract_tbl where wxhtid=? and isnumeric (substring(contractno,len(wxhtno)+1,len(contractno)-len(wxhtno)-1))=1 Parameters: [1198825637593000814]


ms sqlserver 2k,ms自己的jdbc
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcyan 2008-10-09
  • 打赏
  • 举报
回复
可能“len(contractno)-len(wxhtno)-1”<0或者大于了整个字符串的长度
跟下看看它的值多少
liaoyi_ipanel 2008-10-09
  • 打赏
  • 举报
回复
可能你拼凑字符串出错了.
你打印出java中的sql,看看有错没.
hy0231 2008-10-09
  • 打赏
  • 举报
回复
应该是你的数据库中的数据有问题.substring(contractno,len(wxhtno)应该是空指针或数据有误导致.
where wxhtid=? 这个在查询器中是写死的,恰好数据没错.可以换成其它条件试试
jcyan 2008-10-09
  • 打赏
  • 举报
回复
"substring"函数的参数传错了
看下它的语法先
xiangjunhua 2008-10-09
  • 打赏
  • 举报
回复
我也遇到过同样的问题,查询几个表用关联时能在查询分析器中查询出来,但是用在JDBC中就不行,我也不知道为什么?~~

67,537

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧