Oracle修改是如何判断是自己,SqlServer/Oracle 通过一个sql判断新增/修改

if(Config.DbInfo.DbType.Equals(DBType.SQLServer))

{

sql= "IF EXISTS (SELECT 1 FROM wifi.imsi_model_status WHERE device_id = @device_id and wireless='" + row[0].GetString() + "') UPDATE wifi.imsi_model_status SET model_status = @model_status,version=@version,serialnumber=@serialnumber, Log_Time=" + SysConst.time_sqlserver + "WHERE device_id = @device_id and wireless='" + row[0].GetString() + "' ELSE INSERT INTO wifi.imsi_model_status(Log_Time, device_id, wireless,model_status,version,serialnumber) VALUES(" + SysConst.time_sqlserver + ", @device_id,'" + row[0].GetString() + "', @model_status,@version,@serialnumber)";

cmdParms= new IDataParameter[4];

cmdParms[0] = new SqlParameter("@device_id", deviceId);

cmdParms[1] = new SqlParameter("@model_status", row[1].GetString());

cmdParms[2] = new SqlParameter("@version", ver);

cmdParms[3] = new SqlParameter("@serialnumber", ser);

sqlDic.Add(sql, cmdParms);

}else if(Config.DbInfo.DbType.Equals(DBType.Oracle))

{

sql= "MERGE INTO wifi.imsi_model_status a USING (select count(*) co from wifi.imsi_model_status WHERE device_id = :device_id and wireless='" + row[0].GetString() + "') b ON (b.co<>0) WHEN MATCHED THEN UPDATE SET Log_Time=" + SysConst.time_sql + ",model_status = :model_status,version=:version,serialnumber=:serialnumber WHERE device_id = :device_id and wireless='" + row[0].GetString() + "' WHEN NOT MATCHED THEN INSERT (Log_Time, device_id,wireless, model_status,version,serialnumber) VALUES(" + SysConst.time_sql + ", :device_id, '" + row[0].GetString() + "',:model_status,:version,:serialnumber)";

cmdParms= new IDataParameter[4];

cmdParms[0] = new OracleParameter(":device_id", deviceId);

cmdParms[1] = new OracleParameter(":model_status", row[1].GetString());

cmdParms[2] = new OracleParameter(":version", ver);

cmdParms[3] = new OracleParameter(":serialnumber", ser);

sqlDic.Add(sql, cmdParms);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值