- 浏览: 595421 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
主要功能
提供有条件地更新和插入数据到数据库表中
如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作
— 避免了分开更新
— 提高性能并易于使用
— 在数据仓库应用中十分有用
MERGE语句的语法如下:
MERGE例子
注意:on子句的使用的字段不能够用于update,即Oracle不允许更新用于连接的列。
提供有条件地更新和插入数据到数据库表中
如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作
— 避免了分开更新
— 提高性能并易于使用
— 在数据仓库应用中十分有用
MERGE语句的语法如下:
MERGE [hint] INTO [schema .] table [t_alias] USING [schema .] { table | view | subquery } [t_alias] ON ( condition ) WHEN MATCHED THEN merge_update_clause WHEN NOT MATCHED THEN merge_insert_clause;
MERGE例子
MERGE INTO copy_emp c USING employees e ON (c.employee_id=e.employee_id) WHEN MATCHED THEN UPDATE SET c.first_name=e.first_name, c.last_name=e.last_name, c.department_id=e.department_id WHEN NOT MATCHED THEN INSERT VALUES(e.employee_id,e.first_name,e.last_name, e.email,e.phone_number,e.hire_date,e.job_id, e.salary,e.commission_pct,e.manager_id, e.departmetn_id);
注意:on子句的使用的字段不能够用于update,即Oracle不允许更新用于连接的列。
MERGE INTO MN A USING MM B ON(A.ID=B.ID) WHEN MATCHED THEN UPDATE SET A.NAME = B.NAME WHEN NOT MATCHED THEN INSERT VALUES(B.ID, B.NAME); ON(A.ID=B.ID)
MERGE INTO TEST T USING TEST1 ON T1.NAME = T.NAME WHEN NOT MATCHED THEN INSERT (T.ID) values( sys_guid() );
发表评论
文章已被作者锁定,不允许评论。
-
sql 最小化表查询次(col1,col2) = (select col1,col2 from t)
2018-01-02 16:51 552最小化表查询次数 ... -
sql 用inner join取代in和exists
2018-01-02 16:48 1152使用表连接替换EXISTS ... -
oracle HINT详解
2017-09-01 10:42 519ORACLE的HINT详解 hints是oracle提供的 ... -
oracle jdbctemplate如何优化查询速度
2017-08-21 09:33 13181.设置setFetchSize进行优化 // 可以优化 ... -
oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
2017-08-18 16:48 18991.用途 强行启用 ... -
oracle 存储过程学习总结
2016-08-22 08:42 359dbms_output.put_line('CONCAT ... -
oracle SGA总结信息
2016-07-06 10:38 511SGA 系统全局区 SGA是Oracle用来为实例村粗数据和 ... -
oracle where条件分支查询
2016-06-30 16:16 521select * from test xx where ... -
oracle with as用法
2016-06-24 09:58 937with as语法 –针对一个别名 with tmp as ... -
oracle 重复数据处理的sql整理
2016-06-22 14:44 398Oracle 删除重复数据只留一条 1、查找表中多余的重 ... -
oracle 数据库组成部分(数据库(各种文件)+实例(SGA PGA + 后台进程))知识
2016-04-11 19:51 1269一、SQL server中的实例与 ... -
oracle expdp与impdp导入导出
2016-03-17 10:17 1283[b]数据泵工具导出的步骤:[/b] 1、创建DIRECT ... -
oracle 常用sql语句积累
2016-01-28 11:01 5701.删除重复列 delete from t t1 where ... -
oracle forall关键字进行批量操作
2014-12-12 15:26 1045两个数据操纵语言(DML)语句:BULK COLLECT和FO ... -
oracle 表中有子父关系列则使用CONNECT BY PRIOR
2014-10-27 10:08 420查询名字为xx xxx的所有子数据 SELECT re.U ... -
oracle 存储过程使用实例
2014-10-22 17:41 6071.建包 CREATE OR REPLACE PACKA ... -
oracle 删除大量数据后整理表(analyze table xxx compute statistics)
2014-10-17 18:09 22271. DELETE 后 TRUNCATE TABLE ; 然 ... -
oracle splitstr 函数
2014-10-15 17:45 1409splitstr函数 CREATE OR REPLACE ... -
oracle 高效Sql语句总结
2014-10-08 11:23 504No SQL,No cost. SQL语句是造成数据库 ... -
Oracle时间去除零的问题
2014-07-17 19:48 843天碰到只要取月份和天数,如果月份前面有0要去掉0.比如说201 ...
相关推荐
oracle使用 merge 更新或插入数据(总结)
描述详解:Oracle Merge Into 是一个功能强大的SQL语句,它在Oracle数据库系统中被广泛用于处理数据同步、更新或插入操作。与传统的UPDATE和INSERT语句相比,Merge Into 提供了更为灵活和高效的数据管理方式。在...
通过以上案例,我们可以清楚地了解到`MERGE`命令的强大之处,它不仅可以灵活地处理数据更新和插入,还支持更高级的功能如使用`WHERE`子句和`DELETE`子句等。这些特性使得Oracle数据库的`MERGE`命令成为了处理复杂...
在Oracle数据库中,`MERGE INTO`语句是一种非常强大的工具,它允许用户根据源表中的数据更新目标表,同时也可以插入新记录。这一特性在处理大量数据时尤其有用,因为它能够在一个步骤中完成更新和插入操作,从而提高...
下面是一个简单的示例,演示如何使用 Merge 函数来更新或插入数据: ```sql CREATE TABLE merge_test1 (a NUMBER, b VARCHAR2(20)); CREATE TABLE merge_test2 (a NUMBER, b VARCHAR2(20)); INSERT INTO merge_test...
在数据库管理中,尤其是在处理大量数据的场景下,高效地更新或插入数据是一项至关重要的任务。Oracle 9i R2 版本引入了一种名为 `MERGE` 的新功能,这一功能在业界被称为“更新插入”(upsert),即在一个步骤内同时...
在Oracle数据库中,`MERGE INTO`语句是一种强大的数据操作工具,它允许你在一个步骤中执行更新(UPDATE)和插入(INSERT)操作,从而提高了数据处理的效率和灵活性。这个命令尤其适用于需要同步两个表的数据时,比如...
当我们需要将新数据集与现有数据库表进行比较并根据条件进行插入或更新时,`MERGE INTO`语句就派上用场了。这个语句允许我们基于特定条件更新已有记录,同时插入新的记录。 - 基本语法:`MERGE INTO 目标表 USING ...
Direct Insert 是一种高效的数据插入方式,可以提高数据插入速度。并行是指同时执行多个任务,以提高处理速度。排序处理是指对数据进行排序,以提高查询速度。 Oracle 大数据量操作性能优化技术可以提高 Oracle ...
在 Oracle 数据库中,Merge Into 语句是一种非常有用的功能,它主要用来合并 update 和 insert 语句,即用一个表中的数据来修 改或插入到另一个表中。Merge Into 语句的主要原则是“有则更新,无则插入”。 Merge ...
在处理需要根据特定条件更新或插入数据的场景时,MERGE语句提供了高效的解决方案,尤其适合那些需要在单个SQL语句中同时执行这两种操作的情况。这减少了对数据库的多次访问,提高了整体性能。 MERGE语句的基本结构...
在数据库管理中,有时我们需要执行一种操作,即当...希望这个解释对理解如何在MySQL中实现插入或更新操作有所帮助,如果你有更多的问题或需要进一步的信息,欢迎继续提问。在此,我们感谢你对数据库技术的关注和支持。
merge 详解 及实例 优点: — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 — 使用merge比传统的先判断再选择插入或更新快很多
1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作 — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 2)MERGE语句的...
merge into语句可以根据条件匹配更新或插入数据。 3. Mybatis的动态SQL语法foreach循环插入可以实现批量插入。foreach循环可以将List中的实体bean逐个插入到数据库中。 4. 使用union拼接sql可能会导致问题sql过长,...
Oracle的`MERGE INTO`语句是一种强大的工具,用于根据源数据更新或插入目标表的记录。这个SQL命令结合了`INSERT`, `UPDATE`和`DELETE`操作,使得在处理数据匹配和同步时更加高效。在给定的实例中,`MERGE INTO`被...
在Oracle数据库管理中,`MERGE`语句是一种强大的功能,它允许用户根据源表中的数据更新目标表,同时也可以向目标表中插入新的记录。这使得`MERGE`成为处理大量数据时的一个高效工具,特别是在需要同步两个数据集的...
执行这个语句后,`test1`会被正确更新和插入数据。但是,如果`test2`中有重复的匹配条件,比如`id=2`的记录,`MERGE`会抛出错误,因为它无法确定应该更新还是插入。在这种情况下,必须确保源数据的唯一性,或者通过...