关于Oracle Merge操作
由于项目中牵扯到大数据解析导入,每次导入一条数据之前要去数据库去判断是否存在此数据,用于更新和插入
,执行效率不是一般的慢~ 得知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)
作者“单纯想法”
相关新闻>>
- 发表评论
-
- 最新评论 更多>>