Oracle Merge 实现更新/插入记录的自动判断
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')
评论暂时关闭