写了个带merge的SQL语法,
MERGE INTO wk_test2 m
USING wk_test1 wk
ON (m.AA2 = wk.AA1)
WHEN MATCHED THEN
update set
m.bb2=wk.bb1
在CSE(一种可以执行SQL语句的IDE工具)中可以正常执行插入处理。
但是把相同的语句,
做成.SQL文件后,使用SQLPLUS执行就不好用,
而且,没有任何错误提示信息。就是DOS窗口卡在那,一动不动。
为什么确定是MERGE的原因?
因为不使用MERGE,其他的简单语法,更新也好,还是插入也好,在sqlplus中都可以正常执行。
------解决思路----------------------
sqlplus执行应该没啥问题的,看看是不是数据被锁了?
我这建了两个简单的表试了下,没啥问题的
SQL> MERGE INTO T m
2 USING T1 wk
3 ON (m.ID = wk.ID)
4 WHEN MATCHED THEN
5 update set
6 m.A=wk.STARTVALUE1;
96 行已合并。
SQL> COMMIT;
提交完成。
------解决思路----------------------
merge没什么问题,
之所以卡住很有可能其他session没有commit,锁住了需要每修改的记录。
sqlplus可以用merge
------解决思路----------------------
换到administrator权限执行下试试就知道了