CN116955321A - 存储程序的逻辑对比方法及其装置、电子设备及存储介质 - Google Patents
存储程序的逻辑对比方法及其装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116955321A CN116955321A CN202310953951.XA CN202310953951A CN116955321A CN 116955321 A CN116955321 A CN 116955321A CN 202310953951 A CN202310953951 A CN 202310953951A CN 116955321 A CN116955321 A CN 116955321A
- Authority
- CN
- China
- Prior art keywords
- result
- storage program
- target
- program
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种存储程序的逻辑对比方法及其装置、电子设备及存储介质,涉及金融科技领域或其他相关领域,其中,该方法包括:将源数据库的每个源存储程序转换成目标数据库的目标存储程序,比较源存储程序与目标存储程序,得到比较结果,对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数,基于权重值,采用调用参数同时执行两个数据库的同一存储程序,得到执行结果,在执行结果指示第一出参结果与第二出参结果不一致和/或第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。本发明解决了相关技术中对存储程序进行核对的效率及准确性较低的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种存储程序的逻辑对比方法及其装置、电子设备及存储介质。
背景技术
在数据库转型阶段(即将数据从旧的数据库迁移至新的数据库阶段),源数据库(例如,Oracle数据库,即一种关系数据库)的代码会通过工具转换成适配目标数据库(例如,GaussDB数据库,即一种分布式关系型数据库)的新的代码。
由于不同数据库的底层逻辑不一致,为了适配目标数据库,转换工具会对代码进行改写。因此,即使使用同样的入参(即输入到存储过程的参数)运行不同数据库中的同一个存储过程,不同的数据库也可能存在不一致的计算结果。为了保证业务逻辑的准确性,开发人员需要对大量的存储过程进行调试。
相关技术中,往往在源数据库和目标数据库中使用同样的入参运行同一个存储过程,然后对比运行后的出参结果,并人工核对出参结果。然而,出参(即存储过程输出的参数)通常都是表明成功或者失败的结果标志,并不能证明存储过程中的运行逻辑的准确性,覆盖代码分支的全面性,因此,不仅耗费大量的人力,造成对比效率低下,而且还会存在遗漏业务场景、代码分支覆盖不完全等问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种存储程序的逻辑对比方法及其装置、电子设备及存储介质,以至少解决相关技术中对存储程序进行核对的效率及准确性较低的技术问题。
根据本发明实施例的一个方面,提供了一种存储程序的逻辑对比方法,包括:将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,所述目标数据库是所述源数据库中的数据将要迁移的数据库;比较所述源存储程序与所述目标存储程序,得到比较结果,其中,所述比较结果包括:每对存储程序集合对应的权重值,所述存储程序集合包括:互为对应关系的所述源存储程序以及所述目标存储程序;对每个所述源存储程序以及每个所述目标存储程序中的代码分支进行解析,得到所述代码分支的调用参数;基于所述权重值,采用所述调用参数同时执行所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到执行结果,其中,所述执行结果包括:所述源数据库的第一出参结果以及第一表数据结果、所述目标数据库的第二出参结果以及第二表数据结果;在所述执行结果指示所述第一出参结果与所述第二出参结果不一致,和/或,所述第一表数据结果与所述第二表数据结果不一致的情况下,调整所述第二出参结果和/或所述第二表数据结果指示的所述目标存储程序。
可选地,在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,还包括:确定所述源数据库的第一数据库结构以及所述目标数据库的第二数据库结构;基于所述第一数据库结构配置所述源数据库的第一配置环境,并基于所述第二数据库结构配置所述目标数据库的第二配置环境;运行所述第一配置环境以及所述第二配置环境,并采用预设同步工具,将所述源数据库中的表数据迁移至所述目标数据库,其中,所述表数据包括:多张表。
可选地,在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,还包括:扫描所述源数据库中的所有程序代码;分析所述程序代码,生成运行所述程序代码的执行语句;基于所述执行语句,构建与所述程序代码对应的所述源存储程序。
可选地,比较所述源存储程序与所述目标存储程序,得到比较结果的步骤,包括:比较所述源存储程序对应的第一代码与所述目标存储程序对应的第二代码,确定差异代码;依据所述差异代码的代码量,确定所述差异代码的差异等级;依据所述差异等级,确定所述差异等级指示的所述存储程序集合对应的所述权重值,得到所述比较结果。
可选地,对每个所述源存储程序以及每个所述目标存储程序中的代码分支进行解析的步骤,包括:解析所述源存储程序以及所述目标存储程序,确定预设类型表集合,并为所述预设类型表集合中的每张预设类型表生成一张备份表,其中,每对所述源存储程序以及所述目标存储程序涉及的表是一致的;解析所述源存储程序中的所有执行语句,确定所有所述代码分支,并解析每个所述代码分支,确定调用所述代码分支的所述调用参数;解析所述目标存储程序中的所有所述执行语句,确定所有所述代码分支,并解析每个所述代码分支,确定调用所述代码分支的所述调用参数。
可选地,基于所述权重值,采用所述调用参数同时执行所述存储程序集合中的所述源存储程序以及所述目标存储程序的步骤,包括:对所有所述权重值进行排序,得到排序结果;基于所述排序结果,生成存储程序执行顺序;基于所述存储程序执行顺序,采用所述调用参数执行每个所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到每个所述存储程序集合对应的所述第一出参结果、所述第一表数据结果、所述第二出参结果以及所述第二表数据结果。
可选地,在所述执行结果指示所述第一出参结果与所述第二出参结果不一致和/或所述第一表数据结果与所述第二表数据结果不一致的情况下,调整所述第二出参结果和/或所述第二表数据结果指示的所述目标存储程序的步骤,包括:在所述执行结果指示所述第一出参结果与所述第二出参结果不一致的情况下,将所述第二出参结果指示的所述目标存储程序对应的第二代码发送至目标终端进行调整;和/或,在所述执行结果指示所述第一表数据结果与所述第二表数据结果不一致的情况下,将所述第二表数据结果以及所述第二表数据结果指示的所述目标存储程序对应的所述第二代码发送至目标终端进行调整,并将所述第二表数据结果指示的预设类型表从所述目标数据库中删除,将与所述预设类型表对应的备份表添加至所述目标数据库,其中,所述目标终端基于所述第二表数据结果,调整所述第二代码。
根据本发明实施例的另一方面,还提供了一种存储程序的逻辑对比装置,包括:转换单元,用于将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,所述目标数据库是所述源数据库中的数据将要迁移的数据库;比较单元,用于比较所述源存储程序与所述目标存储程序,得到比较结果,其中,所述比较结果包括:每对存储程序集合对应的权重值,所述存储程序集合包括:互为对应关系的所述源存储程序以及所述目标存储程序;解析单元,用于对每个所述源存储程序以及每个所述目标存储程序中的代码分支进行解析,得到所述代码分支的调用参数;执行单元,用于基于所述权重值,采用所述调用参数同时执行所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到执行结果,其中,所述执行结果包括:所述源数据库的第一出参结果以及第一表数据结果、所述目标数据库的第二出参结果以及第二表数据结果;调整单元,用于在所述执行结果指示所述第一出参结果与所述第二出参结果不一致,和/或,所述第一表数据结果与所述第二表数据结果不一致的情况下,调整所述第二出参结果和/或所述第二表数据结果指示的所述目标存储程序。
可选地,所述逻辑对比装置还包括:第一确定模块,用于在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,确定所述源数据库的第一数据库结构以及所述目标数据库的第二数据库结构;第一配置模块,用于基于所述第一数据库结构配置所述源数据库的第一配置环境,并基于所述第二数据库结构配置所述目标数据库的第二配置环境;第一迁移模块,用于运行所述第一配置环境以及所述第二配置环境,并采用预设同步工具,将所述源数据库中的表数据迁移至所述目标数据库,其中,所述表数据包括:多张表。
可选地,所述逻辑对比装置还包括:第一扫描模块,用于在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,扫描所述源数据库中的所有程序代码;第一分析模块,用于分析所述程序代码,生成运行所述程序代码的执行语句;第一构建模块,用于基于所述执行语句,构建与所述程序代码对应的所述源存储程序。
可选地,所述比较单元包括:第一比较模块,用于比较所述源存储程序对应的第一代码与所述目标存储程序对应的第二代码,确定差异代码;第二确定模块,用于依据所述差异代码的代码量,确定所述差异代码的差异等级;第三确定模块,用于依据所述差异等级,确定所述差异等级指示的所述存储程序集合对应的所述权重值,得到所述比较结果。
可选地,所述解析单元包括:第一解析模块,用于解析所述源存储程序以及所述目标存储程序,确定预设类型表集合,并为所述预设类型表集合中的每张预设类型表生成一张备份表,其中,每对所述源存储程序以及所述目标存储程序涉及的表是一致的;第二解析模块,用于解析所述源存储程序中的所有执行语句,确定所有所述代码分支,并解析每个所述代码分支,确定调用所述代码分支的所述调用参数;第三解析模块,用于解析所述目标存储程序中的所有所述执行语句,确定所有所述代码分支,并解析每个所述代码分支,确定调用所述代码分支的所述调用参数。
可选地,所述执行单元包括:第一排序模块,用于对所有所述权重值进行排序,得到排序结果;第一生成模块,用于基于所述排序结果,生成存储程序执行顺序;第一执行模块,用于基于所述存储程序执行顺序,采用所述调用参数执行每个所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到每个所述存储程序集合对应的所述第一出参结果、所述第一表数据结果、所述第二出参结果以及所述第二表数据结果。
可选地,所述调整单元包括:第一发送模块,用于在所述执行结果指示所述第一出参结果与所述第二出参结果不一致的情况下,将所述第二出参结果指示的所述目标存储程序对应的第二代码发送至目标终端进行调整;第二发送模块,用于在所述执行结果指示所述第一表数据结果与所述第二表数据结果不一致的情况下,将所述第二表数据结果以及所述第二表数据结果指示的所述目标存储程序对应的所述第二代码发送至目标终端进行调整,并将所述第二表数据结果指示的预设类型表从所述目标数据库中删除,将与所述预设类型表对应的备份表添加至所述目标数据库,其中,所述目标终端基于所述第二表数据结果,调整所述第二代码。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项存储程序的逻辑对比方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项存储程序的逻辑对比方法。
在本公开中,将源数据库的每个源存储程序转换成目标数据库的目标存储程序,比较源存储程序与目标存储程序,得到比较结果,对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数,基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。在本公开中,可以先将源数据库的每个源存储程序转换成目标数据库的目标存储程序,然后比较源存储程序与目标存储程序,得到存储程序集合的权重值,之后可以对每个源存储程序以及每个目标存储程序中的代码分支进行解析,以得到代码分支相应的调用参数,再根据权重值,采用相应的调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,如果得到的执行结果指示第一出参结果与第二出参结果不一致或者第一表数据结果与第二表数据结果不一致,则需要调整第二出参结果或者第二表数据结果指示的目标存储程序,能够自动对存储程序的运行逻辑进行核对,并覆盖了存储程序的所有代码分支,提高了核对效率以及准确性,进而解决了相关技术中对存储程序进行核对的效率及准确性较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的存储程序的逻辑对比方法的流程图;
图2是根据本发明实施例的一种可选的比较源存储程序与目标存储程序之间的差异代码的流程图;
图3是根据本发明实施例的一种可选的存储程序的逻辑对比装置的示意图;
图4是根据本发明实施例的一种用于存储程序的逻辑对比方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
存储过程:即存储程序,是把一系列SQL语句(即数据库语句)预先存储在数据库服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行,即存储过程相当于一个可执行的存储程序。
需要说明的是,本公开中的存储程序的逻辑对比方法及其装置可用于金融科技领域在对存储程序进行逻辑对比的情况下,也可用于除金融科技领域之外的任意领域在对存储程序进行逻辑对比的情况下,本公开中对存储程序的逻辑对比方法及其装置的应用领域不做限定。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明下述各实施例可应用于各种对存储程序进行逻辑对比的系统/应用/设备中。本发明能够解决相关技术中人工执行存储过程可能会耗费大量时间和资源,并且容易造成核对结果出错的问题,并且通过备份表数据,能够有效避免执行前后对数据库中的实际数据造成的影响。此外,还可以确保在执行存储过程中能够进入每一个代码分支进行测试,减少测试时代码分支覆盖不完全的问题,从而有效提升了对存储过程进行核对的准确性。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种存储程序的逻辑对比方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的存储程序的逻辑对比方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,目标数据库是源数据库中的数据将要迁移的数据库。
步骤S102,比较源存储程序与目标存储程序,得到比较结果,其中,比较结果包括:每对存储程序集合对应的权重值,存储程序集合包括:互为对应关系的源存储程序以及目标存储程序。
步骤S103,对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数。
步骤S104,基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,其中,执行结果包括:源数据库的第一出参结果以及第一表数据结果、目标数据库的第二出参结果以及第二表数据结果。
步骤S105,在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。
通过上述步骤,可以将源数据库的每个源存储程序转换成目标数据库的目标存储程序,比较源存储程序与目标存储程序,得到比较结果,对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数,基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。在本发明实施例中,可以先将源数据库的每个源存储程序转换成目标数据库的目标存储程序,然后比较源存储程序与目标存储程序,得到存储程序集合的权重值,之后可以对每个源存储程序以及每个目标存储程序中的代码分支进行解析,以得到代码分支相应的调用参数,再根据权重值,采用相应的调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,如果得到的执行结果指示第一出参结果与第二出参结果不一致或者第一表数据结果与第二表数据结果不一致,则需要调整第二出参结果或者第二表数据结果指示的目标存储程序,能够自动对存储程序的运行逻辑进行核对,并覆盖了存储程序的所有代码分支,提高了核对效率以及准确性,进而解决了相关技术中对存储程序进行核对的效率及准确性较低的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
在本发明实施例中,可以将业务系统的程序代码存储至数据库,但如果当前的源数据库不再适用时,需要将存储的程序代码迁移至目标数据库。因为不同数据库的底层逻辑不一样,所以在迁移时,转换工具为了适配目标数据库会对存储的程序代码以及执行程序代码的存储程序进行适当的改写,而为了保证业务系统的正常运行,需要对改写的存储程序进行核对测试。
一种可选地实施例,在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,还包括:确定源数据库的第一数据库结构以及目标数据库的第二数据库结构;基于第一数据库结构配置源数据库的第一配置环境,并基于第二数据库结构配置目标数据库的第二配置环境;运行第一配置环境以及第二配置环境,并采用预设同步工具,将源数据库中的表数据迁移至目标数据库,其中,表数据包括:多张表。
在本发明实施例中,在进行逻辑对比前,需要先准备好一套源数据库环境(如Oracle数据库功能环境),一套安装好转换后的代码的目标数据库环境(如GaussDB数据库功能环境)(即确定源数据库的第一数据库结构以及目标数据库的第二数据库结构,然后基于第一数据库结构配置源数据库的第一配置环境,并基于第二数据库结构配置目标数据库的第二配置环境)。然后运行第一配置环境以及第二配置环境,并采用预设同步工具(例如,DRS(Data Replication Service,即数据复制服务)工具),将源数据库中的表数据(包括:多张表)迁移至目标数据库,以保证两个数据库中的表数据是一致的。
可选地,在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,还包括:扫描源数据库中的所有程序代码;分析程序代码,生成运行程序代码的执行语句;基于执行语句,构建与程序代码对应的源存储程序。
在本发明实施例中,可以先扫描源数据库的全量代码,以得出存储过程明细(包括:PROCEDURE(程序)和FUNCTION(函数)等),从而获取存储过程代码(即存储程序),具体为:可以先扫描源数据库中的所有数据代码,然后分析数据代码,生成运行数据代码的执行语句,之后根据执行语句,构建与数据代码对应的存储程序。
步骤S101,将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,目标数据库是源数据库中的数据将要迁移的数据库。
在本发明实施例中,为了适配目标数据库(即源数据库中的数据将要迁移的数据库)的底层逻辑,需要先将源数据库的每个源存储程序转换成目标数据库的目标存储程序。
步骤S102,比较源存储程序与目标存储程序,得到比较结果,其中,比较结果包括:每对存储程序集合对应的权重值,存储程序集合包括:互为对应关系的源存储程序以及目标存储程序。
可选地,比较源存储程序与目标存储程序,得到比较结果的步骤,包括:比较源存储程序对应的第一代码与目标存储程序对应的第二代码,确定差异代码;依据差异代码的代码量,确定差异代码的差异等级;依据差异等级,确定差异等级指示的存储程序集合对应的权重值,得到比较结果。
图2是根据本发明实施例的一种可选的比较源存储程序与目标存储程序之间的差异代码的流程图,如图2所示,该方法包括如下步骤:
步骤S201,比较源存储程序对应的第一代码与目标存储程序对应的第二代码,确定差异代码;
步骤S202,依据差异代码的代码量,确定差异代码的差异等级;
步骤S203,依据差异等级,确定差异等级指示的存储程序集合对应的权重值,得到比较结果。
在本发明实施例中,可以采用代码比较工具(例如,SSDT(SQL Server DataTools,即一种数据库工具)、SQL Server(即一种结构化查询语言工具)、Redgate SQLCompare(即一种数据库同步工具)等工具),比较源存储程序与目标存储程序,以对有差异的代码进行标注,并记录至比较结果(该比较结果包括:每对存储程序集合对应的权重值,存储程序集合包括:互为对应关系的源存储程序以及目标存储程序),具体为:可以先比较源存储程序对应的第一代码与目标存储程序对应的第二代码,以确定两者之间的差异代码(即比较两个数据库中同一存储程序之间的代码),然后依据差异代码的代码量,确定差异代码的差异等级(即代码差异越大,差异等级越高),再依据差异等级,确定差异等级指示的存储程序集合对应的权重值(即差异等级越高,相应的存储程序集合权重越大),并记录至比较结果。
步骤S103,对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数。
可选地,对每个源存储程序以及每个目标存储程序中的代码分支进行解析的步骤,包括:解析源存储程序以及目标存储程序,确定预设类型表集合,并为预设类型表集合中的每张预设类型表生成一张备份表,其中,每对源存储程序以及目标存储程序涉及的表是一致的;解析源存储程序中的所有执行语句,确定所有代码分支,并解析每个代码分支,确定调用代码分支的调用参数;解析目标存储程序中的所有执行语句,确定所有代码分支,并解析每个代码分支,确定调用代码分支的调用参数。
在本发明实施例中,可以对每个存储过程代码进行解析(即对每个源存储程序以及每个目标存储程序中的代码分支进行解析),以确定执行存储过程中涉及的表以及执行其中的代码分支时所需的调用参数,集体为:可以先解析源存储程序以及目标存储程序,以确定预设类型表集合(即确定存储程序在执行时使用的表,并从使用的表中确定预设类型表,其中,预设类型表是数据操纵语言(Data Management Language,简称DML)操作的表,例如,能够进行增删改的表),并为预设类型表集合中的每张预设类型表生成一张备份表(即需要为执行后能够改变的表进行预先备份),例如,通过“create table源表名_bak forselect*from源表名”进行备份,其中,源表名_bak是备份表的名称,源表名是原表的名称。在本实施例中,每对源存储程序以及目标存储程序涉及的表是一致的。
在本发明实施例中,可以针对不同的代码分支(如循环(loop)分支、条件(ifelse)分支等)进行记录,并解析进入代码分支的条件,可以通过查询表数据或mock入参(即用于模拟测试中的各种输入、输出、状态等参数的一种工具)以使每一个代码分支都可以覆盖到(即可以解析源存储程序以及目标存储程序中的所有执行语句,以确定所有代码分支,然后解析每个代码分支,确定调用代码分支的调用参数)。
步骤S104,基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,其中,执行结果包括:源数据库的第一出参结果以及第一表数据结果、目标数据库的第二出参结果以及第二表数据结果。
可选地,基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序的步骤,包括:对所有权重值进行排序,得到排序结果;基于排序结果,生成存储程序执行顺序;基于存储程序执行顺序,采用调用参数执行每个存储程序集合中的源存储程序以及目标存储程序,得到每个存储程序集合对应的第一出参结果、第一表数据结果、第二出参结果以及第二表数据结果。
在本发明实施例中,可以使用解析出来的调用参数执行两个数据库的同一个存储过程,并优先执行差异较大的存储过程,即可以根据每个存储程序集合的权重值,采用相应的调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,以得到执行结果(该执行结果包括:源数据库的第一出参结果以及第一表数据结果、目标数据库的第二出参结果以及第二表数据结果),具体为:可以先对所有权重值进行排序,以得到排序结果,然后根据排序结果,生成存储程序执行顺序(即依据权重值的大小,生成存储程序的执行顺序)。然后根据存储程序执行顺序,采用相应的调用参数依次执行每个存储程序集合中的源存储程序以及目标存储程序,以得到每个存储程序集合对应的第一出参结果(即源数据库的源存储程序的出参结果)、第一表数据结果(即源数据库的源存储程序执行完成后,该源存储程序涉及的预设类型表改变后的表)、第二出参结果(即目标数据库的目标存储程序的出参结果)以及第二表数据结果(即目标数据库的目标存储程序执行完成后,该目标存储程序涉及的预设类型表改变后的表)。
步骤S105,在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。
可选地,在执行结果指示第一出参结果与第二出参结果不一致和/或第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序的步骤,包括:在执行结果指示第一出参结果与第二出参结果不一致的情况下,将第二出参结果指示的目标存储程序对应的第二代码发送至目标终端进行调整;和/或,在执行结果指示第一表数据结果与第二表数据结果不一致的情况下,将第二表数据结果以及第二表数据结果指示的目标存储程序对应的第二代码发送至目标终端进行调整,并将第二表数据结果指示的预设类型表从目标数据库中删除,将与预设类型表对应的备份表添加至目标数据库,其中,目标终端基于第二表数据结果,调整第二代码。
在本发明实施例中,可以比较执行结果中的第一出参结果与第二出参结果,以及第一表数据结果与第二表数据结果,判断是否一致。例如,可以对得到的第一表数据结果与第二表数据结果进行全表扫描,核对两个数据库的存储程序执行完之后的表数据是否完全一致。
在本发明实施例中,如果执行结果指示第一出参结果与第二出参结果不一致,则将第二出参结果指示的目标存储程序对应的第二代码发送至目标终端进行调整;如果执行结果指示第一表数据结果与第二表数据结果不一致,则将第二表数据结果以及第二表数据结果指示的目标存储程序对应的第二代码发送至目标终端进行调整,以使目标终端根据第二表数据结果,调整第二代码。并且,还需要将第二表数据结果指示的预设类型表从目标数据库中删除,将与预设类型表对应的备份表添加至目标数据库,并将备份表的名称变更为原表名称(即将目标数据库中的表数据恢复至存储程序未执行之前),以保证执行前后不对数据库的实际数据造成影响。
本发明实施例中,能够自动对存储程序的运行逻辑进行核对,并覆盖了存储程序的所有代码分支,提高了核对效率以及准确性,并且,通过备份表数据,能够有效避免执行前后对数据库中的实际数据造成的影响。
下面结合另一实施例进行详细说明。
实施例二
本实施例中提供的一种存储程序的逻辑对比装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图3是根据本发明实施例的一种可选的存储程序的逻辑对比装置的示意图,如图3所示,该逻辑对比装置可以包括:转换单元30,比较单元31,解析单元32,执行单元33,调整单元34,其中,
转换单元30,用于将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,目标数据库是源数据库中的数据将要迁移的数据库;
比较单元31,用于比较源存储程序与目标存储程序,得到比较结果,其中,比较结果包括:每对存储程序集合对应的权重值,存储程序集合包括:互为对应关系的源存储程序以及目标存储程序;
解析单元32,用于对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数;
执行单元33,用于基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,其中,执行结果包括:源数据库的第一出参结果以及第一表数据结果、目标数据库的第二出参结果以及第二表数据结果;
调整单元34,用于在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。
上述逻辑对比装置,可以通过转换单元30将源数据库的每个源存储程序转换成目标数据库的目标存储程序,通过比较单元31比较源存储程序与目标存储程序,得到比较结果,通过解析单元32对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数,通过执行单元33基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,通过调整单元34在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。在本发明实施例中,可以先将源数据库的每个源存储程序转换成目标数据库的目标存储程序,然后比较源存储程序与目标存储程序,得到存储程序集合的权重值,之后可以对每个源存储程序以及每个目标存储程序中的代码分支进行解析,以得到代码分支相应的调用参数,再根据权重值,采用相应的调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,如果得到的执行结果指示第一出参结果与第二出参结果不一致或者第一表数据结果与第二表数据结果不一致,则需要调整第二出参结果或者第二表数据结果指示的目标存储程序,能够自动对存储程序的运行逻辑进行核对,并覆盖了存储程序的所有代码分支,提高了核对效率以及准确性,进而解决了相关技术中对存储程序进行核对的效率及准确性较低的技术问题。
可选地,逻辑对比装置还包括:第一确定模块,用于在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,确定源数据库的第一数据库结构以及目标数据库的第二数据库结构;第一配置模块,用于基于第一数据库结构配置源数据库的第一配置环境,并基于第二数据库结构配置目标数据库的第二配置环境;第一迁移模块,用于运行第一配置环境以及第二配置环境,并采用预设同步工具,将源数据库中的表数据迁移至目标数据库,其中,表数据包括:多张表。
可选地,逻辑对比装置还包括:第一扫描模块,用于在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,扫描源数据库中的所有程序代码;第一分析模块,用于分析程序代码,生成运行程序代码的执行语句;第一构建模块,用于基于执行语句,构建与程序代码对应的源存储程序。
可选地,比较单元包括:第一比较模块,用于比较源存储程序对应的第一代码与目标存储程序对应的第二代码,确定差异代码;第二确定模块,用于依据差异代码的代码量,确定差异代码的差异等级;第三确定模块,用于依据差异等级,确定差异等级指示的存储程序集合对应的权重值,得到比较结果。
可选地,解析单元包括:第一解析模块,用于解析源存储程序以及目标存储程序,确定预设类型表集合,并为预设类型表集合中的每张预设类型表生成一张备份表,其中,每对源存储程序以及目标存储程序涉及的表是一致的;第二解析模块,用于解析源存储程序中的所有执行语句,确定所有代码分支,并解析每个代码分支,确定调用代码分支的调用参数;第三解析模块,用于解析目标存储程序中的所有执行语句,确定所有代码分支,并解析每个代码分支,确定调用代码分支的调用参数。
可选地,执行单元包括:第一排序模块,用于对所有权重值进行排序,得到排序结果;第一生成模块,用于基于排序结果,生成存储程序执行顺序;第一执行模块,用于基于存储程序执行顺序,采用调用参数执行每个存储程序集合中的源存储程序以及目标存储程序,得到每个存储程序集合对应的第一出参结果、第一表数据结果、第二出参结果以及第二表数据结果。
可选地,调整单元包括:第一发送模块,用于在执行结果指示第一出参结果与第二出参结果不一致的情况下,将第二出参结果指示的目标存储程序对应的第二代码发送至目标终端进行调整;第二发送模块,用于在执行结果指示第一表数据结果与第二表数据结果不一致的情况下,将第二表数据结果以及第二表数据结果指示的目标存储程序对应的第二代码发送至目标终端进行调整,并将第二表数据结果指示的预设类型表从目标数据库中删除,将与预设类型表对应的备份表添加至目标数据库,其中,目标终端基于第二表数据结果,调整第二代码。
上述的逻辑对比装置还可以包括处理器和存储器,上述转换单元30,比较单元31,解析单元32,执行单元33,调整单元34等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:将源数据库的每个源存储程序转换成目标数据库的目标存储程序,比较源存储程序与目标存储程序,得到比较结果,对每个源存储程序以及每个目标存储程序中的代码分支进行解析,得到代码分支的调用参数,基于权重值,采用调用参数同时执行存储程序集合中的源存储程序以及目标存储程序,得到执行结果,在执行结果指示第一出参结果与第二出参结果不一致,和/或,第一表数据结果与第二表数据结果不一致的情况下,调整第二出参结果和/或第二表数据结果指示的目标存储程序。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的存储程序的逻辑对比方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的存储程序的逻辑对比方法。
图4是根据本发明实施例的一种用于存储程序的逻辑对比方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图4中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种存储程序的逻辑对比方法,其特征在于,包括:
将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,所述目标数据库是所述源数据库中的数据将要迁移的数据库;
比较所述源存储程序与所述目标存储程序,得到比较结果,其中,所述比较结果包括:每对存储程序集合对应的权重值,所述存储程序集合包括:互为对应关系的所述源存储程序以及所述目标存储程序;
对每个所述源存储程序以及每个所述目标存储程序中的代码分支进行解析,得到所述代码分支的调用参数;
基于所述权重值,采用所述调用参数同时执行所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到执行结果,其中,所述执行结果包括:所述源数据库的第一出参结果以及第一表数据结果、所述目标数据库的第二出参结果以及第二表数据结果;
在所述执行结果指示所述第一出参结果与所述第二出参结果不一致,和/或,所述第一表数据结果与所述第二表数据结果不一致的情况下,调整所述第二出参结果和/或所述第二表数据结果指示的所述目标存储程序。
2.根据权利要求1所述的逻辑对比方法,其特征在于,在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,还包括:
确定所述源数据库的第一数据库结构以及所述目标数据库的第二数据库结构;
基于所述第一数据库结构配置所述源数据库的第一配置环境,并基于所述第二数据库结构配置所述目标数据库的第二配置环境;
运行所述第一配置环境以及所述第二配置环境,并采用预设同步工具,将所述源数据库中的表数据迁移至所述目标数据库,其中,所述表数据包括:多张表。
3.根据权利要求1所述的逻辑对比方法,其特征在于,在将源数据库的每个源存储程序转换成目标数据库的目标存储程序之前,还包括:
扫描所述源数据库中的所有程序代码;
分析所述程序代码,生成运行所述程序代码的执行语句;
基于所述执行语句,构建与所述程序代码对应的所述源存储程序。
4.根据权利要求1所述的逻辑对比方法,其特征在于,比较所述源存储程序与所述目标存储程序,得到比较结果的步骤,包括:
比较所述源存储程序对应的第一代码与所述目标存储程序对应的第二代码,确定差异代码;
依据所述差异代码的代码量,确定所述差异代码的差异等级;
依据所述差异等级,确定所述差异等级指示的所述存储程序集合对应的所述权重值,得到所述比较结果。
5.根据权利要求1所述的逻辑对比方法,其特征在于,对每个所述源存储程序以及每个所述目标存储程序中的代码分支进行解析的步骤,包括:
解析所述源存储程序以及所述目标存储程序,确定预设类型表集合,并为所述预设类型表集合中的每张预设类型表生成一张备份表,其中,每对所述源存储程序以及所述目标存储程序涉及的表是一致的;
解析所述源存储程序中的所有执行语句,确定所有所述代码分支,并解析每个所述代码分支,确定调用所述代码分支的所述调用参数;
解析所述目标存储程序中的所有所述执行语句,确定所有所述代码分支,并解析每个所述代码分支,确定调用所述代码分支的所述调用参数。
6.根据权利要求1所述的逻辑对比方法,其特征在于,基于所述权重值,采用所述调用参数同时执行所述存储程序集合中的所述源存储程序以及所述目标存储程序的步骤,包括:
对所有所述权重值进行排序,得到排序结果;
基于所述排序结果,生成存储程序执行顺序;
基于所述存储程序执行顺序,采用所述调用参数执行每个所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到每个所述存储程序集合对应的所述第一出参结果、所述第一表数据结果、所述第二出参结果以及所述第二表数据结果。
7.根据权利要求1所述的逻辑对比方法,其特征在于,在所述执行结果指示所述第一出参结果与所述第二出参结果不一致和/或所述第一表数据结果与所述第二表数据结果不一致的情况下,调整所述第二出参结果和/或所述第二表数据结果指示的所述目标存储程序的步骤,包括:
在所述执行结果指示所述第一出参结果与所述第二出参结果不一致的情况下,将所述第二出参结果指示的所述目标存储程序对应的第二代码发送至目标终端进行调整;和/或,
在所述执行结果指示所述第一表数据结果与所述第二表数据结果不一致的情况下,将所述第二表数据结果以及所述第二表数据结果指示的所述目标存储程序对应的所述第二代码发送至目标终端进行调整,并将所述第二表数据结果指示的预设类型表从所述目标数据库中删除,将与所述预设类型表对应的备份表添加至所述目标数据库,其中,所述目标终端基于所述第二表数据结果,调整所述第二代码。
8.一种存储程序的逻辑对比装置,其特征在于,包括:
转换单元,用于将源数据库的每个源存储程序转换成目标数据库的目标存储程序,其中,所述目标数据库是所述源数据库中的数据将要迁移的数据库;
比较单元,用于比较所述源存储程序与所述目标存储程序,得到比较结果,其中,所述比较结果包括:每对存储程序集合对应的权重值,所述存储程序集合包括:互为对应关系的所述源存储程序以及所述目标存储程序;
解析单元,用于对每个所述源存储程序以及每个所述目标存储程序中的代码分支进行解析,得到所述代码分支的调用参数;
执行单元,用于基于所述权重值,采用所述调用参数同时执行所述存储程序集合中的所述源存储程序以及所述目标存储程序,得到执行结果,其中,所述执行结果包括:所述源数据库的第一出参结果以及第一表数据结果、所述目标数据库的第二出参结果以及第二表数据结果;
调整单元,用于在所述执行结果指示所述第一出参结果与所述第二出参结果不一致,和/或,所述第一表数据结果与所述第二表数据结果不一致的情况下,调整所述第二出参结果和/或所述第二表数据结果指示的所述目标存储程序。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的存储程序的逻辑对比方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的存储程序的逻辑对比方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310953951.XA CN116955321A (zh) | 2023-07-31 | 2023-07-31 | 存储程序的逻辑对比方法及其装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310953951.XA CN116955321A (zh) | 2023-07-31 | 2023-07-31 | 存储程序的逻辑对比方法及其装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955321A true CN116955321A (zh) | 2023-10-27 |
Family
ID=88452712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310953951.XA Pending CN116955321A (zh) | 2023-07-31 | 2023-07-31 | 存储程序的逻辑对比方法及其装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955321A (zh) |
-
2023
- 2023-07-31 CN CN202310953951.XA patent/CN116955321A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271326B (zh) | 云数据库的测试方法及其装置、设备和存储介质 | |
CN104252481A (zh) | 主从数据库一致性的动态校验方法和装置 | |
CN107992404A (zh) | 一种软件自动测试方法及装置 | |
CN110704475A (zh) | 一种etl加载表结构的比对方法及系统 | |
CN111309581B (zh) | 一种数据库升级场景下的应用性能检测方法及装置 | |
CN113127347A (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
US11914574B2 (en) | Generation of inconsistent testing data | |
CN114185791A (zh) | 一种数据映射文件的测试方法、装置、设备及存储介质 | |
CN113268470A (zh) | 一种高效的数据库回滚方案验证方法 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN117421238A (zh) | 灾备补账的测试方法及其装置、电子设备及存储介质 | |
CN109508203B (zh) | 版本一致性确定方法、装置及系统 | |
CN116955321A (zh) | 存储程序的逻辑对比方法及其装置、电子设备及存储介质 | |
CN116401230A (zh) | 一种关系型数据库的变更方法、系统、设备及存储介质 | |
CN112346994B (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN109558153B (zh) | 版本一致性确定方法、装置及系统 | |
CN116010349B (zh) | 基于元数据的数据检核方法和装置、电子设备和存储介质 | |
CN111143221B (zh) | 一种测试方法及装置 | |
CN116955322A (zh) | 存储程序的性能对比方法及其装置、电子设备及存储介质 | |
CN114595159B (zh) | 测试数据生成方法、装置、设备及存储介质 | |
CN113052463B (zh) | 工作流核验方法、装置、计算机设备及存储介质 | |
CN101894217A (zh) | 标准一致性测试系统及其测试方法 | |
CN117763026A (zh) | 接口对接方法及装置、电子设备、存储介质 | |
CN116431491A (zh) | 用于数据迁移的测试方法及其装置、电子设备及存储介质 | |
CN115147212A (zh) | 一种对账系统验证方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |