oracle两表数据对比minus

oracle两表数据对比minus

ID:34724981

大小:50.74 KB

页数:3页

时间:2019-03-10

oracle两表数据对比minus_第1页
oracle两表数据对比minus_第2页
oracle两表数据对比minus_第3页
资源描述:

《oracle两表数据对比minus》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、oracle 两表数据对比---minus1引言在程序设计的过程中,往往会遇到两个记录集的比较。如华东电网PMS接口中实现传递一天中变更(新增、修改、删除)的数据。实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较等等。本文主要讨论利用ORACLE的MINUS函数,直接实现两个记录集的比较。2实现步骤假设两个记录集分别以表的方式存在,原始表为A,产生的比较表为B。2.1判断原始表和比较表的增量差异利用MINUS函数,判断原始表与比较表的增量差异。此增量数据包含两部分:1)原始

2、表A有、比较表B没有;2)原始表A和比较表B都有,但是某些字段发生了改变。2.2判断比较表与原始表的增量差异利用MINUS函数,判断比较表与原始表的增量差异。此增量数据包含两部分:1)比较表B有、原始表A没有;2)比较表B和原始表A都有,但是某些字段发生了改变。2.3得出结果集利用SQL语句中的对两种增量差异的处理,实现判别出比较表相对于原始表是进行了“插入”、“修改”、“删除”的情况。3实例演练3.1创建表并插入数据CreatetableA(A1number(12),A2varchar2(50)

3、);CreatetableB(B1number(12),B2varchar2(50));InsertIntoAValues(1,'a');InsertIntoAValues(2,'ba');InsertIntoAValues(3,'ca');InsertIntoAValues(4,'da');InsertIntoBValues(1,'a');InsertIntoBValues(2,'bba');InsertIntoBValues(3,'ca');InsertIntoBValues(5,'dda')

4、;InsertIntoBValues(6,'Eda');COMMIT;3.2进行增量差异数据比较3.2.1原始表A与比较表B的增量差异Select*fromAminusselect*fromB;结果如下:          A1          A2---------------------------------------------------------------           2         ba           4         da3.2.2比较表B与原始表A的增

5、量差异Select*fromBminusselect*fromA;结果如下:          B1           B2---------------------------------------------------------------           2           bba           5           dda           6           Eda3.2.3两种增量差异的合集此合集包含3类数据:--1、原始表A存在、比较表B不存在,属于删除

6、类数据,出现次数1--2、原始表A不存在、比较表B存在,属于新增类数据,出现次数1--3、原始表A和比较表B都存在,属于修改类数据,出现次数2SelectA1,A2,1tfrom(Select*fromAminusselect*fromB)unionSelectB1,B2,2tfrom(Select*fromBminusselect*fromA);结果如下:          A1                  A2              T------------------------

7、-------------------------------------------------           2                  ba               1           2                  bba              2           4                  da               1           5                  dda              2          

8、 6                  Eda              23.3得到结果SelectA1,sum(t)from(SelectA1,A2,1tfrom(Select*fromAminusselect*fromB)unionSelectB1,B2,2tfrom(Select*fromBminusselect*fromA))GroupbyA1;结果如下:          A1    SUM(T)-----------------------           6  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。