关于SQLPLUS 和MERGE语法的问题。

wxylvmnn 2014-11-05 02:34:49
写了个带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中都可以正常执行。

...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxylvmnn 2014-11-05
  • 打赏
  • 举报
回复
昂,那台VPN服务器在国外,不给我们admin权限, 算了,不知道犯什么毛病,调查太浪费时间,已经改成存储过程来实现了。 谢谢2位了哈。
bw555 2014-11-05
  • 打赏
  • 举报
回复
换到administrator权限执行下试试就知道了
wxylvmnn 2014-11-05
  • 打赏
  • 举报
回复
commit有。 我也纳闷呢。 之前在LINUX服务器上,相同的SQL语句,都好用来的。 不过这次的OS是WIN7。 再就是,OS登录者,是使用者权限,不是administrator权限。 难不成,跟这个有关?
CT_LXL 2014-11-05
  • 打赏
  • 举报
回复
引用 楼主 wxylvmnn 的回复:
merge没什么问题, 之所以卡住很有可能其他session没有commit,锁住了需要每修改的记录。 sqlplus可以用merge
bw555 2014-11-05
  • 打赏
  • 举报
回复
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;

提交完成。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧