Oracle MARGE INTO 快速理解与使用方法
快速理解:MARGE INTO(刷新数据)
在Oracle中使用于Procedure(程序)中,在Procedure中对数据表Table进行的操作时,既可以使用INSERT INTO语句用于插入数据,也可以使用MARGE INTO语句用于刷新数据。相较于INSERT INTO语句只能插入数据,MARGE语句可以刷新已有的数据避免插入重复数据。
比如说,我要插入下面16个字段的数据(字段内容忽略):
insert into crmii.T_STAT_KHJF_R(rq,khh,qdid,jyl,jyl_gjzh,yj,yj_gjzh,jyj,jyj_gjzh,crm_jyj_z,crm_jyj,yxh,yyb,khrq,zjkh,SKKH) select * from XXXXXXX
如果Procedure执行一遍,则会插入成功1次,但如果在重复执行的JOB中,就会跟随JOB执行次数的增多,重复插入数据
不如我们来使用marge into (忽略字段内容):
MERGE INTO CRMII.T_STAT_SCZR_ZYXHRQ T1 USING (SELECT KHH, N1 AS ZYXHRQ FROM CRMII.TMP_COMMON1 WHERE N1 IS NOT NULL) T2 ON (T1.KHH = T2.KHH) WHEN MATCHED THEN UPDATE SET T1.ZYXHRQ = NVL(T1.ZYXHRQ, T2.ZYXHRQ);
大致的逻辑是:
刷新表()
使用数据集()
刷新规则()
符合规则,则()
不符合规则,则()
ps.规则判定内可以同时取到被刷新表和使用数据集的数据
标准格式如下:
MERGE INTO XXX USING (SELECT * FROM TTT) ON (XXX. = TTT.) WHEN MATCHED THEN UPDATE SET XXXXXXXX WHEN NOT MATCHED THEN INSERT INTO XXX
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律