`

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')   
 
分享到:
评论

相关推荐

    对Oracle多表关联更新的应用研究.pdf

    在性能方面,UPDATE语句可能更适合简单的更新操作,而MERGE语句在处理复杂的条件判断和多表操作时可能更为高效。因此,应根据具体业务逻辑和数据量来选择合适的更新方法。通过对比UPDATE和MERGE的执行成本,可以优化...

    Oracle高级sql学习与练习

    它是一种高效的数据操作方法,特别适用于数据同步、更新或插入操作。 5. 层次查询(HIERARICAL RETRIVEL)通常指在Oracle中通过CONNECT BY语句实现的树形结构数据查询,可以方便地查询具有层级关系的数据。 6. ...

    Oracle EBS开发文档(form, report)

    - **Mergeinto应用**:这是一种高效的数据合并方式,可以用于更新或插入数据。 - **Truncatetable**:快速清空表中的所有数据而不保留任何索引和约束,适用于测试环境中的数据清理。 - **绑定变量与非绑定变量之比较...

    Oracle EBS 开发笔记

    - **Mergeinto应用**:执行插入或更新操作。 - **Truncate table**:清空表中的所有数据。 - **绑定变量与非绑定变量之比较**:探讨这两种变量类型的不同之处。 - **取不重复的记录行**:筛选出唯一的记录。 - ...

    Oracle-ERP开发笔记

    - Mergeinto是一个强大的DML语句,用于插入或更新数据。 **8. Truncatetable** - TRUNCATE TABLE命令用于清空表中的所有数据,但保留表结构不变。 **9. 绑定变量与非绑定变量之比较** - 绑定变量在SQL性能优化中...

    OracleEBS_EBS开发

    - **Mergeinto应用**:使用MERGE INTO语句更新或插入记录。 - **Truncate table**:快速清空表中的数据。 - **绑定变量与非绑定变量之比较**:了解它们的区别及其应用场景。 - **取不重复的记录行**:从表中选择唯一...

    oracle常见Exception

    2. **使用MERGE语句**:利用MERGE语句来避免插入重复记录。 #### ZERO_DIVIDE (ORA-01476) **异常描述:** 在执行除法运算时,如果分母为零,则会触发`ZERO_DIVIDE`(ORA-01476)异常。 **解决方法:** 1. **添加...

    Oracle考试题.docx

    例如,如果自定义函数中包含更新、删除或插入语句,则必须显式地提交这些操作(即使用`COMMIT`语句)。另外,自定义函数不仅可以返回标量类型,还可以返回表类型,同时支持OUT类型的参数。这些知识点对于理解如何...

    oracle基础知识

    登录Oracle数据库可以通过多种方式实现: - **SQL*Plus**:命令行工具,支持多种操作系统。 - **PL/SQL Developer**:图形化工具,便于开发和管理。 - **Web界面**:通过启动`oracledbconsole[数据库名]`服务,在...

    mysql面试题,涉及MySQL基础、MySQL索引、MySQL语句 MySQL进阶等方面,适用于初、中级开发人员

    MySQL 中没有类似 Oracle 的 merge 语句,但是可以使用两种方法来实现类似的功能:INSERT INTO … ON DUPLICATE KEY UPDATE 和 REPLACE INTO。前者使用 INSERT 语句向表中插入记录,如果发现主键或唯一键冲突,则...

    oracle从入门到精通

    ### Oracle从入门到精通 #### 一、SQL基础 ##### 1.1 基本概念 - **Oracle**:一款广泛使用的商业关系型数据库管理系统。 - **SQL**:Structured Query Language,用于管理关系数据库的标准语言。 ##### 1.2 ...

    oracle入门经典

    ### Oracle入门经典知识点详解 #### 一、SQL基础 **1.1 基本概念** - **数据库**: 存储和组织数据的一种方式,Oracle是一种关系型数据库管理系统。 - **表**: 数据库中的基本存储单元,由行(记录)和列(字段)...

    阿里巴巴笔试题及答案.pdf

    - **影响DML操作**: 插入、更新、删除操作可能会因为维护索引而变慢。 #### 七、索引与性能的关系 虽然索引通常能提高查询性能,但在某些情况下可能并不会显著提升性能,甚至会降低性能。这取决于多种因素,如索引...

    高级SQL学习

    **MERGE INTO**:允许在一个操作中插入、更新或删除记录,基于目标表中的条件。这对于批量更新或处理大型数据集非常有用。 **示例**: 假设有一个目标表 `TargetTable` 和一个源表 `SourceTable`,要将源表中的数据...

    今日头条校园招聘历年经典面试题汇总:C++研发1

    但创建和维护索引也会占用额外存储空间,并可能影响数据插入、更新和删除的速度。 7. **B 树**:B树是一种自平衡的多路搜索树,适用于大型数据库索引。每个节点可以有多个子节点,且保持中间层节点近似平衡,从而...

Global site tag (gtag.js) - Google Analytics