当前位置:首页 > 人工智能

使用sqlserver官方驱动包调用存储过程遇到的坑及解决方法

和外部系统做对接,使用对方提供了一个存储过程,官过程对方为sqlserver数据库,驱法我方为oracle数据库。动包调用的坑需求简单来说就是存储调用对方的存储过程获得结果,转储到我方库,及解决方后续在对数据进行处理。使用

我写了个代码片段做测试,官过程用jdbc来调用对方的驱法存储过程,可是动包调用的云服务器提供商在调用后就直接报错了,错误信息如下

使用sqlserver官方驱动包调用存储过程遇到的坑及解决方法

com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集

使用sqlserver官方驱动包调用存储过程遇到的坑及解决方法

我就不理解了,存储为啥用数据库连接工具调就没问题呢?及解决方是有结果集的呀。

使用sqlserver官方驱动包调用存储过程遇到的坑及解决方法

疯狂找资料,使用找帖子。官过程最后终于是驱法找到了。

解决方法:

换驱动包。对方数据库是SQL server2008,我用的是高防服务器 sqljdbc4-4.0 。直接换了第三方开源的SQL Server数据库的JDBC驱动程序 jtds1.2。问题解决,调用存储过程的时候不再出错。 在存储过程首行添加 set nocount on (这个我没实验,因为存储过程没在我手里,操作不到)

最后记录一段jdbc调用存储结构的代码,一个参数,返回结果集

?

分享到:

滇ICP备2023006006号-16