关于Oracle Merge操作

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 07:44 点击:

由于项目中牵扯到大数据解析导入,每次导入一条数据之前要去数据库去判断是否存在此数据,用于更新和插入
,执行效率不是一般的慢~ 得知Oracle9.2之后有Merge语句后,十分方便啊~一下是简单的例子。仅作以后参考吧
 
语法关键字  Merge into   TableName(要执行插入,或者更新的目标表)
using TableName 或者 select 子查询 (这就是对比的数据源)
on  (需要匹配的条件)
when Matched Then (如果符合匹配)
    update 或者 delete 或者 insert  根据具体业务需要选择
when not Matched Then (如果不符合匹配)
    update 或者 delete 或者 insert  根据具体业务需要选择
相应的具体更新,删除,插入操作跟平时操作有点儿出入 具体请看代码示例
Java代码 
Merge Into t_Gsm_Antenna_Mode M1 --更新或者插入数据的目标表 Using (Select * From t_Gsm_Antenna_Test M2 Where M2.V_CELL_ADDR_PRO=1) U1 --数据源 可以是Table Name 也可以为 select 子查询 On (M1.I_SUBCOMP_ID=U1.i_Subcomp_Id And M1.I_CELL_ID=U1.i_Id And M1.i_Floor=U1.i_Floor) When Matched Then --当on条件匹配时,即数据源存在此数据的情况下更新 Update Set M1.I_COUNTRY_ID=U1.i_Country_Id,M1.V_BTS_NUMBER=U1.V_BTS_NUMBER,M1.V_CELL_NAME=U1.v_Cell_Name When Not Matched Then --当on条件不匹配时,即数据源不存在此数据的情况下插入 Insert (M1.I_SUBCOMP_ID,M1.I_COUNTRY_ID,M1.V_CELL_NAME) Values(U1.I_SUBCOMP_ID,U1.I_COUNTRY_ID,U1.V_CELL_NAME) 

作者“单纯想法”
 

    相关新闻>>

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Table函数使用简介
    • Oracle数据库Constraint约束的常用操作及异常处理
    • Bulk Collect性能分析(zz)
    • export/import的使用
    • OCP043第十五讲 Database Security
    • ORACLE10gr2数据导入MySQL方案
    • oracle 让sys用户可以使用isqlplus
    • 在oracle数据库下使用iSQL*Plus DBA访问数据库
    • Oracle行列转换小结
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1