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

本文详细介绍了如何在SQLMAP中利用特定条件实现数据更新与插入操作,具体涉及到ORACLE数据库中两个条件的比较,并通过MERGE语句执行相应的SQL操作。

在 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')   
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值