ORACLE 和SQLSERVER 两表之间批量更新数据对比

1、SQLSERVER中的写法:

 --更新上传点表数据
    update ID_MASTER set ONCALL_ID=Tb_Points.ONCALL_ID,
                         ServerName=Tb_Points.ServerName,
                         SISCode = Tb_Points.SISCode,
                         LOC_ID = Tb_Points.JZCode,
                         Unit= Tb_Points.Unit,
                         Description = Tb_Points.PointName
                     from Tb_Points
   where ID_MASTER.ServerName=Tb_Points.ServerName and 
            ID_MASTER.SISCode=Tb_Points.SISCode
    --更新开关量数据
    update BUFFER_DIGI set CTR_VALUE=Tb_Points.RealValue,
                          VALUE_TIME=Tb_Points.InputDate
                      from Tb_Points,ID_MASTER
    where BUFFER_DIGI.ONCALL_ID=ID_MASTER.ONCALL_ID and
             BUFFER_DIGI.TRANS_ID = ID_MASTER.TRANS_ID and
             BUFFER_DIGI.LOC_ID = ID_MASTER.LOC_ID and 
             ID_MASTER.ServerName=Tb_Points.ServerName and
             ID_MASTER.SISCode=Tb_Points.SISCode 

2、ORACLE中的写法

--更新机组信息
update tb_pointconfig a set (GENERATORID)=
       (select decode(b."GroupId",1,13,2,14) as JZ 
       from sssj b where a.uploadid=b."Id" and a.factoryid=9 and (b."GroupId"=1 or b."GroupId"=2))

--使用MERGE方法更新数据

MERGE INTO tb_realtimedatavalue a
       USING tb_pointconfig b
         ON (a.fid = b.factoryid and a.uploadid=b.uploadid)
         WHEN MATCHED THEN
         UPDATE SET a.pointid = b.id
         WHERE a.fid=13

转载于:https://www.cnblogs.com/GeneralXU/archive/2009/03/25/1421175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值