ORACLE 和SQLSERVER 两表之间批量更新数据对比
2009-03-25 11:27
696 查看
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
--更新上传点表数据
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
相关文章推荐
- ORACLE 和SQLSERVER 两表之间批量更新数据对比
- sqlserver 与 SYBASE , ORACLE,DB2 之间的数据类型对比
- Oracle 逐条和批量插入数据方式对比
- java数据类型与sqlserver,oracle 11g,mongo 3,mysql 5类型对比一览表
- .net中利用oracle产品自带的数据访问组件(Oracle.DataAccess.dll)提升批量更新操作的执行效率
- Oracle数据的批量更新
- SQLServer中批量插入数据方式的性能对比
- SQLServer中批量插入数据方式的性能对比
- oracle 一张表复制到另一张表以及已经复制的表之间的批量更新
- Oracle两张表关联批量更新其中一张表的数据
- Oracle 逐条和批量插入数据方式对比
- SQLServer中批量插入数据方式的性能对比
- SQLServer中批量插入数据方式的性能对比
- oracle表数据批量更新或插入
- SQLServer中批量插入数据方式的性能对比
- c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)
- SQLServer中批量插入数据方式的性能对比 (转)
- Oracle 逐条和批量插入数据方式对比
- sqllite与sqlserver在.net中相互之间得数据批量插入
- PreparedStatement 批量更新,插入数据到Oracle