`
duanfei
  • 浏览: 733618 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle merge 合并

 
阅读更多
@Transactional
	public void mergeAll(){
		dao.executeUpdateBySqlId("mergeTbDdbLogInfo", null); 
		dao.executeUpdateBySqlId("deletTbDdbLogTEMPAllInfo", null); 
	}


<update id="mergeTbDdbLogInfo">
		<![CDATA[
			merge into tb_ddb_log a
using (select * from tb_ddb_log_temp) b 
on (a.paperNo= b.paperNo 
            and a.paperName= b.paperName
            and a.username= b.username
            and  a.telephone= b.telephone 
            and a.address= b.address 
            and  a.zipCode= b.zipCode
            and a.delflag = 0
        )
        when not matched then
         insert values
            (b.row_id,
        b.createtime,
        b.updatetime,
        b.createuserid,
        b.updateuserid,
        b.DEPTID,
        b.DELFLAG,
        b.paperNo,
        b.paperName,
        b.username,
        b.telephone,
        b.address,
        b.zipCode)
		]]>
	</update>


<update id="mergeYjxxInfo">
		<![CDATA[
			merge into tb_yjxx a 
using (select * from tb_yjxx_tmp) b
on (a.ghtm= b.ghtm)
when matched then 
      update set 
            a.DEPTID = b.deptid,
            a.delflag = b.DELFLAG ,
            a.LSH = b.LSH ,
            a.PCH = b.PCH ,
            a.TDJ = b.TDJ ,
            a.TDJH=b.TDJH,
            a.TDDH=b.TDDH,
            a.TDFJ=b.TDFJ,
            a.CLZT1 =b.CLZT1 ,
            a.CLZT2 =b.CLZT2 ,
            a.CLSJ=b.CLSJ,
            a.CZY =b.CZY ,
            a.QX=b.QX,
            a.KHH =b.KHH ,
            a.ZH=b.ZH,
            a.DWMC=b.DWMC,
            a.XM=b.XM,
            a.DZ=b.DZ,
            a.LXDH=b.LXDH,
            a.JE=b.JE,
            a.DZDBH =b.DZDBH ,
            a.WDBZ=b.WDBZ
when not matched then
   insert values(b.row_id,b.createtime,b.updatetime,b.createuserid,b.updateuserid)
		]]>
	</update>


<delete id="deletTbDdbLogTEMPAllInfo">
		delete from TB_DDB_LOG_TEMP
	</delete>




mysql
需要建一个唯一索引
  CREATE UNIQUE INDEX TELEPHONE_INDEX ON JSHX_PROGRAM(TELEPHONE,BSS_TYPE); 


replace into JSHX_PROGRAM
			select * from JSHX_PROGRAM_TEMP where delflag = 0


分享到:
评论

相关推荐

    Oracle merge合并更新函数实例详解

    Oracle的MERGE语句是一种强大的数据操作工具,它在Oracle9i版本中被引入,用于合并UPDATE和INSERT操作。在处理需要根据特定条件更新或插入数据的场景时,MERGE语句提供了高效的解决方案,尤其适合那些需要在单个SQL...

    Oracle merge into用法

    接下来,使用`MERGE INTO`语句将`NEWPRODUCTS`中的数据合并到`PRODUCTS`中。当`PRODUCT_ID`在两个表中都存在时,`PRODUCTS`中的记录将被更新为`NEWPRODUCTS`中的信息;当`PRODUCT_ID`仅存在于`NEWPRODUCTS`中时,会...

    Oracle中merge into的使用

    在Oracle数据库中,`MERGE INTO`语句是一种强大的数据操作工具,它允许你在一个步骤中执行更新(UPDATE)和插入(INSERT)操作,从而提高了数据处理的效率和灵活性。这个命令尤其适用于需要同步两个表的数据时,比如...

    oracle死锁原因解决办法

    此外,还可以通过合并多个SQL语句或者调整SQL语句的执行顺序来避免死锁。 ##### 4.2 调整数据库配置 合理设置数据库配置参数,如`INITTRAN`和`MAXTRANSPCTFREE`等,以减少事务之间的冲突。可以通过调整这些参数来...

    浅谈Oracle数据库中Merge Into的用法.pdf

    在 Oracle 数据库中,Merge Into 语句是一种非常有用的功能,它主要用来合并 update 和 insert 语句,即用一个表中的数据来修 改或插入到另一个表中。Merge Into 语句的主要原则是“有则更新,无则插入”。 Merge ...

    利用 sqluldr2导出数据 使用sqlldr导入数据 通过merge into 合并更新数据

    下面将详细阐述如何使用这两个工具以及如何通过`MERGE INTO`语句进行数据合并更新。 1. SQLULDR2导出数据: SQLULDR2是Oracle提供的一款数据导出工具,它能够快速地将数据库中的数据导出到文本文件或其他格式的...

    merge_row_count:一个简单的实用程序,允许对由 Oracle 中的合并操作插入更新删除的行进行计数

    一个简单的实用程序 PL/SQL 包,允许对 Oracle 中的合并操作插入/更新/删除的行进行计数。 包的需要 Oracle不提供获取行数的功能。 插入 更新 已删除 使用 MERGE 操作完成所有操作时。 这个简单的实用程序是为了...

    Merge-Sql.zip

    在支持MERGE的数据库系统(如Oracle、SQL Server、PostgreSQL等)中,这个语句能有效地处理复杂的合并场景。然而,并非所有数据库都原生支持MERGE,例如MySQL的标准版本就未包含此功能。在这种情况下,我们需要寻找...

    update语句的优化-oracle .pdf

    使用merge语句可以避免编写复杂的逻辑判断,并且可以提高处理效率,特别适用于需要根据条件合并多表数据的场景。 4. 快速游标更新法: 当更新操作涉及到多表关联且逻辑较为复杂时,可以使用PL/SQL的游标(cursor...

    Oracle 大数据量操作性能优化

    例如,添加分区可以使用 alter table add partition 语句,删除分区可以使用 alter table drop partition 语句,Truncate 分区可以使用 alter table truncate partition 语句,合并分区可以使用 alter table merge ...

    Oracle表连接方式

    根据不同的数据集和查询需求,Oracle提供了多种表连接方式,包括NESTED LOOP、HASH JOIN和SORT MERGE JOIN等。 NESTED LOOP NESTED LOOP是一种基本的表连接方式,适用于被连接的数据子集较小的情况。在nested loop...

    SQL中Merge用法详解

    MERGE是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表(原数据表,source table)或子查询的连接条件对另外一张(目标表,target table)表进行查询,连接条件匹配上的进行UPDATE,...

    json-merge-patch:JSON 合并补丁 (RFC 7396) 的实现

    JSON 合并补丁 JSON 合并补丁 JSON 合并补丁是一种标准格式,允许您通过发送更改而不是整个文档来更新 JSON 文档。 JSON Merge Patch 与 HTTP PATCH 动词(方法)和 REST 风格的编程配合得很好。 安装 安装当前版本...

    为什么oracle有时不用索引来查找数据

    3. **连接类型**:Oracle支持三种连接方式:排序合并连接(Sort Merge Join, SMJ)、哈希连接(Hash Join, HJ)和嵌套循环连接(Nested Loop Join, NL)。在两张表连接时,只有嵌套循环连接能够在内表的目标列上有效...

    oracle资源大全

    8. **merge into 用法.txt**:MERGE INTO是Oracle中的一个高级DML操作,用于合并数据源,实现更新或插入,根据特定条件决定是更新已有记录还是插入新记录。 通过学习这些资料,不仅可以掌握Oracle的基础操作,还能...

    Oracle优化常用概念.pptx

    Oracle 提供了多种表连接方式,包括 Hash Join、Nested Loop 和 Sort Merge。每种方式都有其特点和工作原理: * Nested Loop:使用条件:任何连接;优点:当有高选择性索引或进行限制性搜索时效率比较高,能够快速...

    Oracle数据库3种主要表连接方式对比

    本文将详细介绍三种主要的表连接方式:嵌套循环连接(Nested Loop Join,简称NL Join)、排序合并连接(Sort Merge Join,简称SM Join)以及散列连接(Hash Join)。我们将探讨它们的特点、优势与劣势,以便于在实际...

    Oracle SQL高级编程

    1.9 MERGE语句 22 1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 ...

Global site tag (gtag.js) - Google Analytics