今天遇到一个比较诡异的问题,就是使用ojdbc14.jar驱动访问数据库时,使用Statement.execute执行merge语句后,在调用getUpdateCount()方法查看更新的条目数,永远返回的是0值,但是当我换11g最新的驱动后,不论是访问数据库10g还是11g,都能够正确的返回merge语句所更新到的行数,而且这个行数是 merge中update+insert所更新行数的和。
merge中使用delete情况我没有测试到,但按照常理来看,应该也是会被计入返回值的。
所以这么看来,应该就是老版本驱动的问题了,后来就让同事把系统的驱动换成ojdbc6.jar了,虽然数据库是10g,应该问题不大。
-------------------------------------------------------------------------------------------------------------
在后面的几天中,又出现了ojdbc6.jar不能正常访问oracle 10g的情况,老是报OAUTH错误。但项目自带的ojdbc14.jar驱动又不能正常拿到merge的返回值,情急之下,直接上服务器把oracle服务器上面的ojdbc14.jar下载下来,发现可以使用。应该是之前的ojdbc14.jar版本不正常的问题。
--------------------------------------------------------------------------------------------------------------