Oracle Merge 实现更新/插入记录的自动判断

在 SQL MAP 中定义这样的 SQL ,ORACLE 数据库中, 如果有  s.post=t.post and s.FLISK_ID=t.FLIGHK_ID

这 2 个条件和传入的数据相等的, 那么就执行 UPDATE   SET  语句。 否则执行  INSERT 语句。

 

 

 

 

merge into crs.flight_task_config s 
	 using (select #fliaskId# as  FLIID,#post# as post  
	 from dual) t 
	 on 
	 (s.post=t.post and s.FLISK_ID=t.FLIGHK_ID )
	 when  matched then update 
	    set   s.PERSONS = #persons:DECIMAL#,
		      s.LAST_MODIFIER = #lastModifier:DECIMAL#,
		      s.LAST_MODIFY_TIME = SYSDATE,
		      s.IF_LINGYAN = 'NO'
	    when not matched then 
		insert (
			s.TASFIG_ID,
			s.FLIGASK_ID,
			s.POST,
			s.PERSONS,
			s.LAST_MODIFIER, 
			s.LAST_MODIFY_TIME,
			s.IF_LINGYAN)
			    values (
			 crs.SEQ_fligconfig.Nextval,
			 #fligkId:DECIMAL#,
			 #post:VARCHAR#,
			 #persons:DECIMAL#,
			 #lastModifier:DECIMAL#,
			 SYSDATE,
			 'NO')   
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值