今天遇到一个比较诡异的问题,就是使用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版本不正常的问题。
--------------------------------------------------------------------------------------------------------------
分享到:
相关推荐
oracle merge 用法详解
oracle merge into的使用,开发必备的。
主要介绍了在MySQL中实现插入或更新操作(类似Oracle的merge语句)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
关于Oracle中merge into的用法,比较实用哦
oracle Merge 函数
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或多表联合查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次...
Oracle中merge into的使用 很有用的哦 学习一下
根据一个源数据表对另一个数据表进行确定性的插入、更新和删除这样复杂的操作,运用新的MERGE语句,开发者用一条命令就可以完成。对两个表进行信息同步时,有三步操作要进行。首先要处理任何需要插入目标数据表的新...
在任何数据库中发生死锁都是不愉快的,即使是在一个特殊的情况下发生也是如此,它们会减小应用程序的接受程度(ACCEPTANCE),因此避免并正确解释死锁是非常重要的。
DB2 merge语句使用教程
详细介绍了使用 BULK COLLECT 进行批量操作 提高sql的执行效率 使用MERGE INTO USING 一条sql搞定 新增和修改 使用connect by 进行递归树查询
可通过merge语句功能,进行数据同步存储功能,里面有具体事例可供参考。大大减少了开发时间,提高了工作执行效率。
实际项目中遇到的问题总结:数据量百万级,千万级。Oracle中update语句的优化,一共四种方案,工作中遇到该类问题可以参考。
在Oracle 9i R2版中引入的MERGE语句通常被称作“更新插入”(upsert),因为使用MERGE可以在同一个步骤中更新(update)并插入(insert)数据行。。。。。。
如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要写更多的代码,同时性能也不好,要来回数据库两次.使用merge的话则可以一条SQL语句完成. 1)主要功能 ...
DB2中的Merge语句可以将一个表中的数据合并到另一个表中,在合并的同时可以根据条件进行插入、删除、更新等操作,功能非常强大。
merge 详解 及实例 优点: — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 — 使用merge比传统的先判断再选择插入或更新快很多
SQL语句优化过程优化策略 21. /*+ORDERED*/ 根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接. 例如: SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1...