merge中using能不能用dblink

attach_finance 2013-10-29 02:12:16
如题,我在写sql的时候用merge时在using里面使用了dblink,oracle报错提示缺失on关键字,求大神指导
MERGE INTO L2_TB S
USING TEST.TB_HOS@CLOUD.WORLD Y
ON S.ID=(CASE WHEN TRIM(Y.JLHH) IS NOT NULL THEN Y.LSH||LPAD(Y.JLHH,6,'0')
ELSE Y.LSH||'000000' END)
WHEN MATCHED THEN
UPDATE SET(ZHH,KH,XM,SFZH,JSRQSJ,JYRQ,DIC_ID,DIC_MC,KSBM,KSMC,YSGH,YSXM,JSLXBZ)=
(SELECT B.ZHH,A.KH,B.XM,B.SFZH,A.JSRQSJ,A.JYRQ,A.DIC_ID,C.NAME,A.KSBM,A.KSMC,A.YSGH,A.YSXM,A.JSLXBZ
FROM TEST.TB_HOS@CLOUD.WORLD A,TEST.TB_ZH@CLOUD.WORLD B,TEST.TB_DIC@CLOUD.WORLD C
WHERE A.KH=B.KH AND A.DIC_ID=C.ID AND LENGTH(A.KH)=9 AND SUBSTR(A.LSH,3,4)='0101';)
WHEN NOT MATCHED THEN
INSERT(ZHH,KH,XM,SFZH,JSRQSJ,JYRQ,DIC_ID,JGMC,KSBM,KSMC,YSGH,YSXM,JSLXBZ)
SELECT B.ZHH,A.KH,B.XM,B.SFZH,A.JSRQSJ,A.JYRQ,A.DIC_ID,C.NAME,A.KSBM,A.KSMC,A.YSGH,A.YSXM,A.JSLXBZ
FROM TEST.TB_HOS@CLOUD.WORLD A,TEST.TB_ZH@CLOUD.WORLD B,TEST.TB_DIC@CLOUD.WORLD C
WHERE A.KH=B.KH AND A.DIC_ID=C.ID AND LENGTH(A.KH)=9;
...全文
170 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 gioh0022 的回复:
on后面的条件用()括起来


官方参考文档:MERGE
  • 打赏
  • 举报
回复
on后面的条件用()括起来

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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