今天测试一个数据导入功能时,突然系统报出了这样的错误:
--- Check the nextDocOID-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:180)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:99)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:573)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:546)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:99)
at com.ibatis.
sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:68)
根据日志提示 是在调用数据库一个
存储过程 时出错的,
奇怪了,之前同样的程序一直没有发生过问题 (
数据库平台为
SQL2005)
仔细回想一下,最近把 jdbc driver的版本做了一次提升,从 sqljdbc-1.1 提升到了 sqljdbc-1.2 , 难道是这里出了问题.
于是把 jdbc driver换回 sqljdbc-1.1,再试,果然没问题了.
到微软的官网上查了一下,原来 sqljdbc-1.2 的确存在这个问题.
看来版本高不一定是件好事啊.
另外,用开源的 jtds 驱动也没有这方面的问题.