免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1504 | 回复: 2
打印 上一主题 下一主题

关于merge语句的用法问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-19 15:45 |只看该作者 |倒序浏览
oracle9i起开始有merge into语句,非常方便,但近日我使用过程中发现一个问题,sql语句如下:
        merge into test_m_ghsspxsmx@webpub c1
        using (select substr(wfd6101,1, xsrq,wfd6119 ghsbm,wfd6104 hwbm,wfd6106 spbm,sum(decode
    (wfd6102,'TH',-1*wfd6111t,'PT',-1*wfd6111t,wfd6111t)) xscb,sum(decode(wfd6102,'TH',
        -1*wfd6112,'PT',-1*wfd6112,wfd6112)) jxsje,sum(decode(wfd6102,'TH',
        -1*wfd6108,'PT',-1*wfd6108,wfd610) xssl from wfd061@scm_sl
    where substr(wfd6101,1,='20050101' and (wfd6102='LS' or wfd6102='CS' or wfd6102='JS' or wfd6102='TH' or wfd6102='PT')
    group by substr(wfd6101,1,,wfd6119,wfd6104,wfd6106) c2
        on (c1.ghsbm=c2.ghsbm) and (c1.xsrq=c2.xsrq) and (c1.spbm=c2.spbm) and (c1.hwbm=c2.hwbm)
        when matched then
     update set c1.jxsje=c2.jxsje,c1.xscb=c2.xscb,c1.xssl=c2.xssl
    when not matched then
             insert (c1,ghsbm,c1.xsrq,c1.hwbm,c1.spbm,c1.xscb,c1.jxsje,c1.xssl)
                 values (c2.ghsbm,c2.xsrq,c2.hwbm,c2.spbm,c2.xscb,c2.jxsje,c2.xssl);
其中,@web_pub及@scm_sl均是远程数据库联接,但此语句执行报不能在此使用聚组(group by),如果merge into中的查询语句不使用group by 则ok,我想请问大家,merge into 在对远程数据库插入或更新数据时是否有在其查询语句中不能使用group by 的限制,如有,如何解决?

论坛徽章:
0
2 [报告]
发表于 2005-09-20 15:09 |只看该作者

关于merge语句的用法问题?

那就不用merge into

论坛徽章:
0
3 [报告]
发表于 2005-09-22 12:04 |只看该作者

关于merge语句的用法问题?

如果不用,则需要用游标解决,编程量大大增加
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP