[发明专利]一种基于Oracle数据库的数据差异比较方法在审
申请号: | 201711021180.1 | 申请日: | 2017-10-27 |
公开(公告)号: | CN107784102A | 公开(公告)日: | 2018-03-09 |
发明(设计)人: | 田振兴;杨宇静;代杰;张晓敏;史慕志;钱金星 | 申请(专利权)人: | 中国电子科技集团公司第二十八研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 王安琪 |
地址: | 210000 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 oracle 数据库 数据 差异 比较 方法 | ||
1.一种基于Oracle数据库的数据差异比较方法,其特征在于,包括如下步骤:
(1)分别通过两个用户名、密码连接两个Oracle数据库,通过数据库提供的访问接口,采用SQL语句,分别获取两个数据库的所有数据库表名,按照表名排序后,比较输出不一致的数据库表名;
(2)对于名称相同的数据库表,通过SQL语句,分别读取每一数据库表的所有字段及其属性,按照字段名排序,比较字段名和属性是否相同,输出不同的字段名和属性;
(3)对所有字段按照属性不同重新进行排序,通过SQL查询语句,依次按照唯一键、主键、名称进行排序,将数据记录转换为字符串,依次比较数据记录的差异,输出差异字段。
2.如权利要求1所述的基于Oracle数据库的数据差异比较方法,其特征在于,步骤(1)中通过SQL语句,分别从读两个数据库的系统数据库表中读取两个用户下的所有数据库表名,并进行比较,具体包括如下步骤:
(11)通过数据库登录用户名和密码分别登录数据库A和数据库B;
(12)通过SQL语句,从系统数据库表中以用户名为查询条件分别找出所属的数据库表名,并按照数据库表名升序排序;
(13)分别将数据两个数据库所有表名存储在内存中建立的两个链表中,并建立两个指针分别指向两个链表的头部;建立两个数据库表名差异计数器,分别记录两个数据库的不相同表名数;建立一个数据库表名相同计数器,记录相同数据库表个数,并建立一个记录相同数据库名称的空链表,所有计数器初始值都为0;
(14)基于数据已经由数据库排序,依次比较两个指针指向的数据库表名是否相同,逐条比较获得对比结果,并分别计数;
(15)如果两个链表中都还有未被比较的数据库表名,重复步骤(14);如果一个链表中没有未被比较的数据库表名,则将另一个链表中的所有记录作为不相同项输出,并将剩余个数增加到对应的计数器上,输出统计结果,继续步骤(2);如果两个链表都没有未被比较的数据库表名,输出统计结果,继续步骤(2)。
3.如权利要求1所述的基于Oracle数据库的数据差异比较方法,其特征在于,步骤(2)中,每一数据库表的所有字段及其属性包括数据类型、长度和是否为空。
4.如权利要求1所述的基于Oracle数据库的数据差异比较方法,其特征在于,步骤(2)中,对于名称相同的数据库表,通过SQL语句,分别读取每一数据库表的所有字段及其属性,按照字段名排序,比较字段名和属性是否相同,输出不同的字段名和属性,具体包括如下步骤:
(21)如果没有未处理的表,结束处理;否则取出一个没有被处理过的数据库表名,分别从两个数据库的系统数据库表中取出该表的所有字段,通过SQL语句将数据库字段名、字段类型、长度、可否为空、是否为主键拼接为字符串,并按照字段名称排序;
(22)已经排序表字段字符串,利用类似步骤(14)的比较方法循环比较其中的字段属性是否有差异,如果有差异则输出差异项,并从listC中删除该表名,转到步骤(21);如果没有差异转到步骤(3)。
5.如权利要求1所述的基于Oracle数据库的数据差异比较方法,其特征在于,步骤(3)中,利用已经获取的数据库字段属性生成数据查询SQL语句,分别获取数据记录,并完成比对,具体包括如下步骤:
(31)从一个数据库的系统数据库表中取出其所有字段属性,包含字段名、字段类型、长度、可否为空、是否为主键,两个数据库的查询结果分别存储在链表中,链表元素包含字段名、字段类型、长度、可否为空、是否为主键;
(32)对所有字段,依据属性优先级不同进行排序,将主键、非空字段排在前面,生成数据库查询SQL语句,该语句将数据表中的所有数据记录按照数据库字段的优先级组合成若干字符串,字符串长度不超过Oracle数据库支持的单个字段最大长度,并进行排序,生成两个数据列表;
(33)利用类似步骤(14)的比较方法比较两个链表中数据差异,输出有差异的数据记录及统计结果;继续执行步骤(21)查询其它数据库表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第二十八研究所,未经中国电子科技集团公司第二十八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711021180.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:包装袋(粘鼠板B‑110)
- 下一篇:包装袋(粘鼠板YL‑115)
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置