`

MERGE 使用例子

 
阅读更多

--MERGE <Usage Case>

--Prepare the temp table to test
DROP TABLE wl_merge_tb1;
DROP TABLE wl_merge_tb2;
CREATE TABLE wl_merge_tb1 (tb_id NUMBER, tb_name VARCHAR2 (10));
CREATE TABLE wl_merge_tb2 (tb_id NUMBER, tb_name VARCHAR2 (10));

--Prepare the temp data to test
--The target table data
INSERT INTO wl_merge_tb1 VALUES (1,'a1');
INSERT INTO wl_merge_tb1 VALUES (2,'a2');
INSERT INTO wl_merge_tb1 VALUES (3,'a3');
INSERT INTO wl_merge_tb1 VALUES (4,'a4');
INSERT INTO wl_merge_tb1 VALUES (5,'a5');
--The source table data
INSERT INTO wl_merge_tb2 VALUES (1,'b1');
INSERT INTO wl_merge_tb2 VALUES (2,'b2');
INSERT INTO wl_merge_tb2 VALUES (3,'b3');
INSERT INTO wl_merge_tb2 VALUES (4,'b4');
INSERT INTO wl_merge_tb2 VALUES (6,'b6');
COMMIT;
--The MERGE clause
MERGE INTO wl_merge_tb1 t1
--Declare the data source
USING ( SELECT t.tb_id
             , t.tb_name
        FROM wl_merge_tb2 t
      ) t2
   --Set the relationship between the source and target table
   ON ( t1.tb_id = t2.tb_id ) 
 --The matched data of source and target table
 WHEN MATCHED THEN
     --Update the target table use the source table data
     UPDATE SET t1.tb_name = 'update'||t2.tb_name
      --Set the action execute condition
      WHERE ( t1.tb_id < 5 )
     --Delete the record of the matched data under the 'WHERE' condition
     DELETE WHERE ( t1.tb_id > 2 )
 --The not matched data in source data table
 WHEN NOT MATCHED THEN
     --Insert the source record to the target table,alse you can set 'WHERE' condition
     INSERT ( t1.tb_id, t1.tb_name )
     VALUES ( t2.tb_id, 'insert' || t2.tb_name );
COMMIT;
    
SELECT * FROM wl_merge_tb1;
SELECT * FROM wl_merge_tb2;

--Target table data
1    updateb1
2    updateb2
5    a5
6    insertb6

--Source table data
1    b1
2    b2
3    b3
4    b4
6    b6

0
7
分享到:
评论

相关推荐

    Hibernate中的merge使用详情解说

    在上面的示例代码中,我们可以看到如何使用 merge 方法来处理数据的更新和插入操作。首先,我们创建了一个新的 Students 对象,并设置了其 ID 和 Name 属性,然后使用 merge 方法将其保存到数据库中。在第二个 ...

    C#例子代码 A0711_Merge

    C#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#...

    C#例子代码 A0710_Merge

    C#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#...

    merge用法详解(实例详解)

    【知识点详解】 ...通过以上介绍,我们了解了`MERGE INTO`语句的基本概念和使用方法,以及在实际场景中如何进行数据同步。在数据库管理和ETL过程中,合理运用`MERGE`能有效地提高数据处理的效率和准确性。

    Mybatis批量foreach merge into的用法

    首先,需要使用Oracle 9i及其以后版本支持的merge into语句,该语句可以实现insertOrUpdate的功能。然后,使用Mybatis的动态SQL语法foreach循环插入,待插入的实体bean的List通过查询数据库dual形成表。foreach的 ...

    oracle merge into的使用

    最后,这个示例演示了如何使用 Merge Into 来插入记录,即使在没有匹配条件的情况下: ``` MERGE INTO products p USING new_products np ON (1 = 0) -- 这个条件永远不成立,所以不会匹配任何行 WHEN NOT ...

    Hibernate中的merge使用详情解说.docx

    - 在提供的示例中,我们看到当在不同的会话中使用`merge()`时,它如何处理游离态对象的更新。在第二个会话中,`merge(str1)`将游离态的`str1`对象的状态合并到由`session2.get()`获取的持久化对象`str2`中。这导致`...

    Oracle中merge into的使用

    以下是一些`MERGE INTO`的使用示例: 1. **更新匹配的记录**: ```sql MERGE INTO products p USING newproducts np ON (p.product_id = np.product_id) WHEN MATCHED THEN UPDATE SET p.product_name = np....

    android merge和include简单使用

    在`TestMergeInclude`这个示例文件中,可能包含了用于演示`merge`和`include`用法的XML布局文件。通过查看这些文件,你可以更直观地理解这两个工具的工作原理和效果。在实际项目中,可以根据需求灵活运用这两个特性...

    Merge into的使用详解

    本篇文章将详细介绍`MERGE INTO`的使用,包括两种常见的写法,并通过实例进行说明。 一、`MERGE INTO`的基本语法 `MERGE INTO`语句的基本结构如下: ```sql MERGE INTO target_table USING source_table ON (join...

    oracle Merge 函数.doc

    下面是一个简单的示例,演示如何使用 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_merge

    以下是一个具体的例子,通过该示例我们可以更深入地理解 `MERGE` 语句的工作机制。 1. **创建表格**:首先,创建两个表格,一个是 `open_projects` 表格,包含项目编号、项目名称等字段;另一个是 `project_updates...

    前端开源库-jsonmerge

    在使用 `jsonmerge` 时,应注意避免不必要的数据覆盖,合理设定合并策略,以及利用自定义合并函数处理特殊需求。同时,对合并过程进行测试,确保合并结果符合预期。 总之,`jsonmerge` 是前端开发中一个实用的工具...

    WinMerge文本比较工具

    在压缩包文件"WinMerge_33lc"中,很可能包含了WinMerge的安装程序或者其他相关资源,例如用户手册、示例文件或配置模板。用户在解压后可以按照指导进行安装和使用。 总的来说,WinMerge作为一个高效的文本比较工具...

    oracle merge 用法详解

    4. **支持DELETE子句**:`MERGE`语句还可以跟`DELETE`子句结合使用,以便删除某些不符合条件的行。 #### 三、示例表创建与应用 为了更好地理解`MERGE`命令的应用场景,我们先创建两个表`PRODUCTS`和`NEWPRODUCTS`...

    Oracle merge into用法

    `MERGE INTO`语句的一个关键优势是它允许使用`WHERE`子句来细化更新和插入的规则。这意味着你可以控制哪些记录会被更新,哪些记录会被插入,甚至可以排除某些特定的记录不进行任何操作。这种精细的控制能力对于数据...

    DB2 merge语句使用教程

    首先,让我们通过一个简单的例子来理解 DB2 Merge 语句的工作原理。假设我们有两个表,一个是雇员表(EMPLOYE),另一个是经理表(MANAGER)。这两个表都有员工号(EMPLOYEID)、姓名(NAME)和薪水(SALARY)这三列...

    Hibernate merge、update与saveOrUpdate方法的区别

    - 使用`merge`方法,Hibernate会先查询数据库中是否存在相同的ID,如果不存在则插入一条新记录。 - 使用`update`方法,由于数据库中没有对应的记录,所以此方法将不起作用。 - 使用`saveOrUpdate`方法,如果ID不...

    merge用法详解

    以下是对`MERGE`语句的详细解释和示例: `MERGE INTO table_name [alias]`用于指定目标表,`USING table_or_query [alias]`则指定了源数据,这里的`table_or_query`可以是另一个表或一个SQL查询结果。`ON ...

Global site tag (gtag.js) - Google Analytics