当前位置: 代码迷 >> Oracle管理 >> 关于SQLPLUS 和MERGE语法的有关问题
  详细解决方案

关于SQLPLUS 和MERGE语法的有关问题

热度:114   发布时间:2016-04-24 04:11:43.0
关于SQLPLUS 和MERGE语法的问题。
写了个带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中都可以正常执行。


------解决思路----------------------
本帖最后由 bw555 于 2014-11-05 14:50:42 编辑
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权限执行下试试就知道了
  相关解决方案