已创建 1 行。
 
SQL> commit;
 
----不带where子句
SQL>  merge into merge1
  2     using merge2
  3   on (merge1.id = merge2.id)
  4   when matched then
  5     update
  6    set merge1.name = merge2.name;
 
3 行已合并。
 
SQL> rollback;
 
回退已完成。
 
---带where子句
SQL>   merge into merge1 a
  2    using merge2 b
  3   on (a.id = b.id)
  4   when matched then
  5    update
  6    set a.name = b.name
  7   where a.name <> b.name;
 
0 行已合并。
 
------如果要更新b表,这样写会出错
SQL>    merge into merge1 a
  2     using merge2 b
  3    on (a.id = b.id)
  4    when matched then
  5     update
  6     set b.name = a.name;
   set b.name = a.name
       *
第 6 行出现错误:
ORA-00904: "B"."NAME": 标识符无效
----------------------------------------

;MERGE INTO Loanee p
USING ( SELECT * FROM @TApply AS nc) c on p.ApplicationID=c.ApplicationID
WHEN MATCHED THEN UPDATE set p.UpdateTime=getdate()
WHEN NOT MATCHED BY TARGET THEN INSERT
(
LoaneeNumber,LoaneeName,LoanDate,LockMatchRatio,SurplusMatchRatio,
MatchRatio,MatchAmount,LockAmount,LoaneeAmount,ExpectedYield,
LoanPeriod,CreditRating,FreeState,UpdateTime,AddTime,
DeleteState,IsFullState,FullTime,LoaneeType,ApplicationID,
CashAccountNo,ContractTime,RelaseRatio,MatchOrder,KsshDate,
LockState,CashAccountNo_Name,loaneeSource,Broker_CashAccount,Broker_CashAccountName,ApprovalTime)
VALUES(
c.LoaneeNumber,c.[LoaneeName],c.[LoanDate],0,1,
0,0,0,c.[LoaneeAmount],c.[ExpectedYield],
c.[LoanPeriod],c.[CreditRating],0,getdate(),getdate(),
0,0,null,0,c.[ApplicationID],
c.[CashAccountNo],c.[ContractTime],0,c.[MatchOrder],[KsshDate],
0,c.[CashAccountNo_Name],0,c.[Broker_CashAccount],c.[Broker_CashAccountName],c.ApprovalTime
);

以上例子的作用就是,向一个表中插入数据时,判断是否存在,不存在则插入,存在则更新
 
 
 

merge into 的用法的更多相关文章

  1. Merge INTO的用法参考

    Merge是一个非常有用的功能,类似于MySQL里的insert into on duplicate key. Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一 ...

  2. Merge into语句用法及其效率问题

    Merge into语句用法及其效率问题 /*Merge into 详细介绍MERGE语句用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询, ...

  3. SQL2008中Merge Into的用法

    在SQL2008中,新增了一个关键字:Merge,这个和Oracle的Merge的用法差不多,只是新增了一个delete方法而已.下面就是具体的使用说明: 首先是对merge的使用说明: merge ...

  4. merge into的用法

    merge into 是英文的一个短语,意思是汇入,合并.顾名思义,merge into是合并了insert和update操作,其执行效率要高于分别单独执行insert和update语句. //创建表 ...

  5. Merge OUTPUT 高级用法综合写的一个MergeTab的存储过程

    因为工作中常用到 合并两张表中的数据,主要是写下来给自己备忘,T-SQL 中 MERGE 的用法 WHEN MATCHED THEN UPDATE -- 中加了 后面要更新的列是否都相等,如果相等就没 ...

  6. merge into的用法及10g新特性总结

    merge into 的作用: 将源数据(来源于实际的表,视图,子查询)更新或插入到指定的表中(必须实际存在),依赖于on条件,好处是避免了多个insert 和update操作. merge是一个目标 ...

  7. oracle中 merge into 的用法

    很多时候我们需要通过筛选条件同时对表进行 更新,插入,删除 等操作.这样如果我们单一的去操作表会显得很麻烦,下面会说到这个merge  into 的用法会极大的优化我们操作表的时间和代码量. 举例,先 ...

  8. Oracle Merge Into的用法详解

    1.    MERGE INTO 的用途         MERGE INTO 是Oracle 9i以后才出现的新的功能.那这个功能 是什么呢?         简单来说,就是:“有则更新,无则插入” ...

  9. Oracle中Merge into的用法实例讲解

    最近在做一个需求,就是涉及到表的问题,前端传过来一条数据,根据主键,查询数据库,如果不存在,那么久插入到数据库中一条,如果存在的话,就是以主键的方式,对数据库中的数据,进行更新. 拿到这个需求的时候, ...

随机推荐

  1. C++ 线程类的一个实现

    .h #ifndef CTHREAD_H_ #define CTHREAD_H_ #include "plat.h" class CThread { public: enum { ...

  2. C#中string.Empty ,"" , null 区别

    引言 String类型作为使用最频繁的类型之一,相信大家都非常熟悉,对于string赋予空值,通常有以下三种方式: String str1=null; String str2=””; String s ...

  3. Android笔记:真机调试无法输出Log 信息的问题

    机器在出厂时将log的级别做了限制,方法是:拨号盘输入*20121220# -> 选择日志输出级别 -> 选择Java log level -> 选择LOGD即可. 方法是:拨号盘输 ...

  4. UVA11538 - Chess Queen(数学组合)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  5. FTP文件夹打开错误,Windows无法访问此文件夹

    错误提示: Windows 无法访问此文件夹,请确保输入的文件夹是正确的,并且你有权访问此文件夹.    解决方法/步骤如下    1.请确保输入的文件夹是正确的,并且你有权访问此文件夹.可以在浏览器 ...

  6. 微信小店 API 手册

    微信商铺API手册V1.13 目录 1.      商品管理接口.................................................................... ...

  7. 使用APICloud写“华为商城”(前端+后端) 无保留提供源码

    第一次分享了一个可以算是完整的手机商城项目,之前从别人的源码中得到了许多帮助,现在入门了也希望能帮一下大家. 注: 前端,后端都有 数据用的是APICloud的MCM,所以小心流量. 目前只有Andr ...

  8. 利用JBoss漏洞拿webshell方法

    JBoss是一个大型应用平台,普通用户很难接触到.越是难以接触到的东西越觉得高深,借用北京公交司机李素丽的一句话“用力只能干出称职,用心才能干出优秀”,在安全上也是如此,虽然JBoss平台很难掌握,但 ...

  9. Enum 绑定到 RadioButton

    参考 这篇文章. 和 http://www.cnblogs.com/626498301/archive/2012/05/22/2512958.html

  10. 什么是JDK,JRE

    JDK 是Java开发工具包 (Java Development Kit ) 的缩写.它是一种用于构建在 Java 平台上发布的应用程序.applet 和组件的开发环境.其中包括了Java编译器.JV ...