CN116578566A - 数据库脚本的检测方法、装置、设备、介质和程序产品 - Google Patents

数据库脚本的检测方法、装置、设备、介质和程序产品 Download PDF

Info

Publication number
CN116578566A
CN116578566A CN202310551711.7A CN202310551711A CN116578566A CN 116578566 A CN116578566 A CN 116578566A CN 202310551711 A CN202310551711 A CN 202310551711A CN 116578566 A CN116578566 A CN 116578566A
Authority
CN
China
Prior art keywords
script
tested
registration information
remark
edition
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
Application number
CN202310551711.7A
Other languages
English (en)
Inventor
贾紫沁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310551711.7A priority Critical patent/CN116578566A/zh
Publication of CN116578566A publication Critical patent/CN116578566A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种数据库脚本的检测方法,涉及测试技术领域,可应用于金融科技领域或其他领域。该检测方法包括:获取待测脚本的关键字;根据关键字确定待测脚本的操作类型;执行与操作类型相匹配的初步检查操作,以生成初步检查结果;根据待测脚本的操作类型,获取待测脚本的需求清单,需求清单包括待测脚本的提版登记信息;根据提版登记信息和初步检查结果,判断待测脚本是否通过检测。本公开还提供了一种数据库脚本的检测装置、设备、介质和程序产品。

Description

数据库脚本的检测方法、装置、设备、介质和程序产品
技术领域
本公开涉及测试技领域,可以应用于金融科技领域或其他领域,本公开具体地涉及一种数据库脚本的检测方法、装置、设备、介质和程序产品。
背景技术
为确保每次数据库投产可顺利进行,数据库人员需要在投产前进行检查。其中正式、历史表表结构对比,存储过程编译等检查可利用现有工具进行自动化核验,但每个版本提版到数据库的脚本仍需人工检查。
随着检查次数的较以往更加频繁,加之脚本数量也在日益增多,数据库的脚本测试的时间成本越来越高。
发明内容
鉴于上述问题,本公开提供了一种数据库脚本的检测方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种数据库脚本的检测方法,其中,包括:
获取待测脚本的关键字;
根据所述关键字确定所述待测脚本的操作类型;
执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果;
根据所述待测脚本的操作类型,获取所述待测脚本的需求清单,所述需求清单包括所述待测脚本的提版登记信息;
根据所述提版登记信息和所述初步检查结果,判断所述待测脚本是否通过检测。
根据本公开的实施例,所述初步检查结果包括描述所述待测脚本的异常的备注;
所述根据所述提版登记信息和所述初步检查结果,判断所述待测脚本是否通过检测,包括:
当所述提版登记信息的内容与所述备注描述的异常相匹配时,确定所述待测脚本通过检测。
根据本公开的实施例,所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,包括:
当所述操作类型包括第一预设操作时,根据所述第一预设操作所针对的库表的表名,在表结构主键表中获取该库表的第一主键,其中,所述第一预设操作包括更新操作、新增操作和删除操作中的至少一者;
根据获取到的所述第一主键和所述第一预设操作的查询条件,判断所述待测脚本是否存在异常;
当所述待测脚本存在异常时,生成描述该异常的备注,以得到第一备注。
根据本公开的实施例,所述初步检测结果包括所述第一备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
根据所述提版登记信息的内容,判断所述第一预设操作是否基于主键执行;
当所述第一预设操作不基于主键执行时,确定所述提版登记信息的内容的描述与所述第一备注描述的异常相匹配。
根据本公开的实施例,所述第一预设操作包括删除操作和与删除操作具有关联的新增操作;
所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,还包括:
判断所述删除操作和所述新增操作所针对的库表的表名是否相同;
当所述删除操作和所述新增操作所针对的库表的表名不一致时,确定所述待测脚本存在异常,并生成描述该异常的备注,以得到第二备注。
根据本公开的实施例,所述初步检测结果包括所述第二备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
根据所述提版登记信息的内容,判断所述删除操作和所述新增操作是否涉及多个库表;
当所述删除操作和所述新增操作涉及多个库表时,确定所述提版登记信息的内容与所述第二备注描述的异常相匹配。
根据本公开的实施例,所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,还包括:
当所述删除操作和所述新增操作所针对的库表的表名相同时,判断所述删除操作和所述新增操作的字段值是否相等;
当所述删除操作和所述新增操作的字段值不相等时,并生成描述该异常的备注,以得到第三备注。
根据本公开的实施例,所述初步检测结果包括所述第三备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
根据所述提版登记信息的内容,判断在执行所述删除操作后是否需要执行所述新增操作;
当在执行所述删除操作后不需执行所述新增操作时,确定所述提版登记信息的内容与所述第三备注描述的异常相匹配;以及,
记录所述提版登记信息中对不执行所述新增操作的解释。
根据本公开的实施例,所述待测脚本的操作类型还包括清表操作,例如清表操作,所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,包括:
获取所述清表操作所针对的库表的表名并生成包含所述清表操作的备注,以得到第四备注;
所述初步检测结果包括所述第四备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
当所述清表操作所针对的库表的表名与所述提版登记信息中的表名一致时,确定所述提版登记信息的内容与所述第四备注描述的异常相匹配。
根据本公开的第二个方面,提供了一种数据库脚本的检测装置,其中,包括:
获取模块,用于获取待测脚本的关键字;
第一处理模块,用于根据所述关键字确定所述待测脚本的操作类型;
第一检测模块,用于执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果;
第二获取模块,根据所述待测脚本的操作类型,获取所述待测脚本的需求清单,所述需求清单包括所述待测脚本的提版登记信息;
第二检测模块,根据所述提版登记信息和所述初步检查结果,判断所述待测脚本是否通过检测。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述的数据库脚本的检测方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的数据库脚本的检测方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的数据库脚本的检测方法。
上述一个或多个实施例具有如下优点或益效果:
本公开的实施例提供了一种自动化的数据库脚本的检测方法,测试过程包括基于待测脚本操作类型执行的初步检查,和基于初步检查结果和需求清单执行的二次复核,这样,可以复用需求清单作为复核的决策依据,从而在不增加额外资源的情况下,提高脚本测试速度,同时还能保证较高的检测准确率
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据库脚本的检测方法、装置、电子设备、存储介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的数据库脚本的检测方法的流程图;
图3示意性示出了根据本公开实施例的判断待测脚本是否通过检测的流程图;
图4示意性示出了根据本公开实施例的初步检查的流程图之一;
图5示意性示出了根据本公开实施例的确定提版登记信息与备注是否匹配的流程图之一;
图6示意性示出了根据本公开实施例的初步检查的流程图之二;
图7示意性示出了根据本公开实施例的确定提版登记信息与备注是否匹配的流程图之二;
图8示意性示出了根据本公开实施例的初步检查的流程图之三;
图9示意性示出了根据本公开实施例的确定提版登记信息与备注是否匹配的流程图之三;
图10示意性示出了根据本公开实施例的数据库脚本的检测装置的结构框图;
图11示意性示出了根据本公开实施例的适于实现数据库脚本的检测方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
需要说明的是,本公开的实施例提供的一种数据库脚本的检测方法、装置、电子设备、存储介质和程序产品涉及测试技术领域。本公开的实施例提供的数据库脚本的检测可应用于金融科技领域或者除金融科技领域之外的任意领域。本公开的实施例对数据库脚本的检测方法、装置、电子设备、存储介质和程序产品的应用领域不做限定。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
本公开的实施例提供了一种数据库脚本的检测方法,包括:获取待测脚本的关键字;根据关键字确定待测脚本的操作类型;执行与操作类型相匹配的初步检查操作,以生成初步检查结果;根据待测脚本的操作类型,获取待测脚本的需求清单,需求清单包括待测脚本的提版登记信息;根据提版登记信息和初步检查结果,判断待测脚本是否通过检测。
由此,本公开的实施例提供了一种自动化的数据库脚本的检测方法,测试过程包括基于待测脚本操作类型执行的初步检查,和基于初步检查结果和需求清单执行的二次复核,这样,可以复用需求清单作为复核的决策依据,从而在不增加额外资源的情况下,提高脚本测试速度,同时还能保证较高的检测准确率。
图1示意性示出了根据本公开实施例的数据库脚本的检测方法、装置、电子设备、存储介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的数据库脚本的检测方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据库脚本的检测装置一般可以设置于服务器105中。本公开实施例所提供的数据库脚本的检测方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据库脚本的检测装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图9对公开实施例的数据库脚本的检测方法进行详细描述。
图2示意性示出了根据本公开实施例的数据库脚本的检测方法的流程图。
如图2所示,该实施例的数据库脚本的检测方法包括步骤S210至步骤S250,需要说明的是,虽然图2中的各步骤按照箭头的指示依次显示,但是,这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替的执行。
在步骤S210,获取待测脚本的关键字。
在步骤S220,根据关键字确定待测脚本的操作类型。
在本公开的实施例中,待测脚本可以是指应用于数据库中的脚本,这些脚本可以对数据库以自动化的方式执行一些操作,例如,对数据库中的库表执行增、栅、改、查等操作。
待测脚本中的关键字(keyword),也称保留字(reservedword),是指脚本代码中规定用途的单词。也就是说,只要在脚本代码内部出现该关键字,编译程序就认为是某种固定的用途。例如,当待测脚本的关键字包括dorp或truncate时,可以认为该待测脚本为清空全表数据的脚本,换句话说,该待测脚本的操作类型为清空全表数据。当待测脚本的关键字包括update或只有update和insert两个关键字时,可以认为该待测脚本为对存量数据进行更新的脚本。
在步骤S230,执行与操作类型相匹配的初步检查操作,以生成初步检查结果。
在本公开的实施例中,每种操作类型对应至少一种风险情况,进而,结合该种风险情况配置相应的检测操作,也即初步检查操作。例如,当待测脚本的关键字包括dorp或truncate时,可以认为该待测脚本为清空全表数据的脚本,对于这种待测脚本,可以检查该待测脚本所针对的库表的表名,并以该待测脚本所针对的库表的表名作为初步检查结果,进而,在后续步骤中,可以将待测脚本所针对的库表的表名与预期的表名进行比对,当二者一致时,则确定待测脚本通过检测,否则,确定该待测脚本未通过检测,从而防止该待测脚本出现表名错误等问题,进而避免由此导致的数据丢失且无法恢复的情况。又例如,当待测脚本的关键字包括update或只有update和insert两个关键字时,可以认为该待测脚本为对存量数据进行更新的脚本,对于这种待测脚本,可以检查该待测脚本是否按照表主键字段进行更新(例如按照主键字段的局部更新),并以该待测脚本是否按照表主键字段进行更新作为初步检查结果,一旦该待测脚本未按照表主键字段进行更新,则可以在后续步骤中,对该待测脚本进行复核,以确定是否允许该待测脚本不按照表主键字段进行更新(例如全域更新),当确定允许该待测脚本不按照表主键字段进行更新时,则确定待测脚本通过检测,否则,确定该待测脚本未通过检测。
在步骤S240,根据所述待测脚本的操作类型,获取待测脚本的需求清单,需求清单包括待测脚本的提版登记信息。
在本公开的实施例中,需求清单可以在待测脚本提版前,由开发人员或计算机进行维护。不同操作类型的待测脚本对应不同的提版登记信息。例如,当待测脚本的操作类型为清空全表数据的脚本时,提版登记信息可以包括脚本名称、脚本提版路径、提版人员、操作表名、是否需要备份以及清空表原因等。又例如,当待测脚本的操作类型为对存量数据进行更新的脚本时,提版登记信息可以包括脚本名称、脚本提版路径、提版人员、操作表名、是否按主键更新以及未按主键更新原因等。
在步骤S250,根据提版登记信息和初步检查结果,判断待测脚本是否通过检测。
在本公开的实施例中,可以根据待测脚本的操作类型,结合初步检查结果,确定是否执行步骤S240,例如,当待测脚本的操作类型为清空全表数据的脚本时,则可以直接获取待测脚本的需求清单,进而,在步骤S250,将待测脚本所针对的库表的表名与提版登记信息中的表名进行比对,以判断待测脚本是否通过检测。又例如,当待测脚本的操作类型为对存量数据进行更新的脚本时,则可以在初步检查结果表征待测脚本未按主键更新时,获取待测脚本的需求清单,进而,在步骤S250,分析提版登记信息中是否包括未按主键更新原因,并根据该原因判断待测脚本是否通过检测。
由此,本公开的实施例提供了一种自动化的数据库脚本的检测方法,测试过程包括基于待测脚本操作类型执行的初步检查,和基于初步检查结果和需求清单执行的二次复核,这样,可以复用需求清单作为复核的决策依据,从而在不增加额外资源的情况下,提高脚本测试速度,同时还能保证较高的检测准确率。
下面结合图2至图9,对本公开实施例的检测方法进行进一步地说明。
图3示意性示出了根据本公开实施例的判断待测脚本是否通过检测的流程图,参照图3,在一些具体实施例中,初步检查结果包括描述待测脚本的异常的备注。
步骤S250包括步骤S251。
在步骤S251,当提版登记信息的内容与备注描述的异常相匹配时,确定待测脚本通过检测。否则,确定待测脚本未通过检测。
在本公开的实施例中,可以在初步检查过程中,分析待测脚本是否可能存在异常,例如,当待测脚本的关键字包括update或只有update和insert两个关键字时,可以认为该待测脚本为对存量数据进行更新的脚本,对于这种待测脚本,可以检查该待测脚本是否按照表主键字段进行更新,当待测脚本未按照表主键字段进行更新时,可以认为该待测脚本可能存在异常,并记录这一情况,也即,生成备注,备注中则记录该待测脚本未按照表主键字段进行更新。
在本公开的实施例中,当提版登记信息中记录有与上述的异常相关的解释时,且该解释能够说明该异常在允许的情况范围内,此时,可以认为提版登记信息的内容与备注描述的异常相匹配。
可选地,提版登记信息中的内容可以按照标准化格式录入,进而,有利于计算机对提版登记信息中的内容进行识别和确认,例如,可以通过关键词识别等语义识别技术分析并确认提版登记信息中的内容。
例如,当待测脚本的操作类型为对存量数据进行更新的脚本时,相应的提版登记信息可以包括是否按主键更新,当待测脚本未按照表主键字段进行更新,且提版登记信息中“是否按主键更新”这一项为“否”时,可以确定提版登记信息的内容与备注描述的异常相匹配。
图4示意性示出了根据本公开实施例的初步检查的流程图之一,参照图4,在一些具体实施例中,步骤S230包括步骤S231至步骤S233。
在步骤S231,当操作类型包括第一预设操作时,根据第一预设操作所针对的库表的表名,在表结构主键表中获取该库表的第一主键,其中,第一预设操作包括更新操作、新增操作和删除操作中的至少一者。否则,可以判断是否为清表操作或者仅有新增操作,若有清表操作,则可以记录表名以用于后续的比对,若仅有新增操作,可以直接确定该待测脚本通过测试。
在步骤S232,根据获取到的第一主键和第一预设操作的查询条件,判断待测脚本是否存在异常。
在步骤S233,当待测脚本存在异常时,生成描述该异常的备注,以得到第一备注。否则,确定待测脚本正常,可以跳过后续的二次复核。
在本公开的实施例中,数据库操作语句中的查询条件可以包括但不限于where条件。
例如,当待测脚本的关键字只有update时,可以认为该待测脚本的操作类型为更新操作。此时,可以读取update语句中where条件里的字段,以及,根据update语句的表名在表结构主键表(该表可以由数据库人员进行维护)进行检索以找到该表的主键,将读取到的主键与update语句中where条件里的字段进行比对,当读取到的主键与update语句中where条件里的字段不一致时,计算关键字次数,然后返回关键字、关键字总次数、脚本名称和备注(也即第一备注),备注可以包括待测脚本未按主键更新,并等待下一步处理。
当读取到的主键与update语句中where条件里的字段一致时,确定待测脚本正常,此时,可以直接确认待测脚本通过测试,除此之外,还可以计算关键字次数,然后返回关键字、关键字总次数、脚本名称和备注,备注可以包括待测脚本按主键更新无问题。
这样可以快速且准确地发现更新操作类待测脚本的异常,防止由此带来的不良影响,例如,开发人员原本只想更新表001地区数据,因漏掉主键中地区号字段条件,使得全部地区都更新了数据。此时数据错误,将直接造成关联业务异常。
图5示意性示出了根据本公开实施例的确定提版登记信息与备注是否匹配的流程图之一,参照图5,在一些具体实施例中,初步检测结果包括第一备注,判断提版登记信息的内容与备注描述的异常是否匹配的步骤包括步骤S2511和步骤S2512。
在步骤S2511,根据提版登记信息的内容,判断第一预设操作是否基于主键执行。
在步骤S2512,当第一预设操作不基于主键执行时,确定提版登记信息的内容的描述与第一备注描述的异常相匹配。否则确定提版登记信息的内容与第一备注描述的异常不匹配。
例如,当待测脚本的操作类型为更新操作时,相应的提版登记信息可以包括脚本名称、脚本提版路径、提版人员、操作表名、是否按主键更新以及未按主键更新原因等。当该待测脚本未按照表主键字段进行更新时,可以将该异常记录至备注中,以得到第一备注。当检测到第一备注时,可以查询提版登记信息中“是否按主键更新”这一项,当该项为“否”时,确定更新操作不基于主键执行,由此,可以确定提版登记信息的内容的描述与第一备注描述的异常相匹配,进而可以确定待测脚本通过检测。否则,确定待测脚本未通过检测。
可选地,在步骤S251之前,还可以读取记录待测脚本提版情况的数据库,根据待测脚本名称和版本分支名称等获取其对应提版路径以及提版人员。进而,将初步检查结果按照脚本名称、脚本提版路径和提版人员三个指标进行归纳汇总。
可选地,在步骤S251之前,当初步检查结果的备注包括待测脚本按主键更新无问题时,说明在步骤S231中读取到的主键与待测脚本where条件里的字段一致,此时,无需通过步骤S240和S250进行复核,可以直接确定待测脚本通过测试。
图6示意性示出了根据本公开实施例的初步检查的流程图之二,参照图6,在一些具体实施例中,第一预设操作包括删除操作和与删除操作具有关联的新增操作,步骤S230还包括步骤S234和步骤S235。
在步骤S234,判断删除操作和新增操作所针对的库表的表名是否相同。
在步骤S235,当删除操作和新增操作所针对的库表的表名不一致时,确定待测脚本存在异常,并生成描述该异常的备注,以得到第二备注。否则,确定待测脚本正常,可以执行例如后续的主键一致性判断和字段值一致性判断。
在本公开的实施例中,对于删除操作,则要保证其是按照需要,基于键或者非基于键执行的删除操作。例如,在执行删除操作时,没有因为遗漏键,而导致删除操作对不需要进行删除的部分进行了删除。
例如,当待测脚本的关键字只有delete和insert两个关键字时,此类脚本一般为删除错误数据,新增正确数据或更新数据等情况,换句话说,该待测脚本的操作类型包括删除操作和与删除操作相关联的新增操作。
在本公开的实施例中,可以从delete和insert两个关键字所在的语句中分别查询出删除操作和新增操作所针对的表名,进而判断删除操作和新增操作所针对的表名是否相同,如果不同,可以直接返回关键字、表名、脚本名称和第二备注,第二备注可以包括多张表DML操作。这样当一个脚本中出现删除和新增操作表对象不一致时,生成第二备注,并在后续步骤中进行相关的复核操作,从而使待测脚本中只对一个表进行操作,不会出现多个表的DML操作情况,从而有利于定位问题。
当删除操作和新增操作所针对的表名相同时,可以执行以下步骤:
根据delete语句的表名在表结构主键表进行检索以找到该表的主键。读取delete语句中where条件里的字段,将从表结构主键表读取到的主键与delete语句中where条件里的字段进行比对,若一致,可以执行步骤S236和步骤S237。如果不一致,则计算关键字次数,然后返回关键字,关键字总次数,脚本名称和备注,该备注可以包括未按主键删除。
在另一些具体实施例中,当待测脚本的关键字只有delete时,可以认为该待测脚本的操作类型为删除操作。此时,可以读取delete语句中where条件里的字段,以及,根据delete语句的表名在表结构主键表进行检索以找到该表的主键,将读取到的主键与delete语句中where条件里的字段进行比对,当读取到的主键与delete语句中where条件里的字段不一致时,计算关键字次数,然后返回关键字、关键字总次数、脚本名称和备注,备注可以包括待测脚本未按主键删除,并等待下一步处理。
当读取到的主键与delete语句中where条件里的字段一致时,确定待测脚本正常,此时,可以直接确认待测脚本通过测试,除此之外,还可以计算关键字次数,然后返回关键字、关键字总次数、脚本名称和备注,备注可以包括待测脚本按主键删除无问题。
在一些具体实施例中,当待测脚本的关键字包括update,delete,insert等超三类关键字时,此类脚本为复合型脚本。可选地,可以首先判断这些关键字语句中的表名是否相同,如果相同则可以进一步进行主键一致性判断,果不相同,则直接返回关键字、表名、脚本名称和多张表DML操作备注,以等待下一步处理。
图7示意性示出了根据本公开实施例的确定提版登记信息与备注是否匹配的流程图之二,参照图7,在一些具体实施例中,初步检测结果包括第二备注,判断提版登记信息的内容与备注描述的异常是否匹配的步骤还包括步骤S2513和步骤S2514。
在步骤S2513,根据提版登记信息的内容,判断删除操作和新增操作是否涉及多个库表。
在步骤S2514,当删除操作和新增操作涉及多个库表时,确定提版登记信息的内容与第二备注描述的异常相匹配。否则,则确定提版登记信息的内容与第二备注描述的异常不匹配。
当待测脚本的操作类型为删除操作和新增操作时,相应的提版登记信息可以包括脚本名称、脚本提版路径、提版人员、操作表名、是否按主键删除、是否涉及多张表DML操作、未按主键删除原因、涉及多张表DML操作原因等。当删除操作和新增操作所针对的表名不同时,可以将该异常记录至备注中,以得到第二备注。当检测到第二备注时,可以查询提版登记信息中“是否涉及多张表DML操作”这一项,当该项为“是”时,确定删除操作和新增操作涉及多个库表,由此,可以确定提版登记信息的内容的描述与第二备注描述的异常相匹配,进而可以确定待测脚本通过检测。否则,确定待测脚本未通过检测。
可选地,在确定提版登记信息的内容的描述与第二备注描述的异常相匹配之后,还可以再对比操作表名栏内容是否和返回表名一致,当一致时,确定待测脚本通过检测,并附上涉及多张表DML操作原因中的内容。当不一致时,确定待测脚本未通过检测。
图8示意性示出了根据本公开实施例的初步检查的流程图之三,参照图8,在一些具体实施例中,步骤S230还包括步骤S236和步骤S237。
在步骤S236,当删除操作和新增操作所针对的库表的表名相同时,判断删除操作和新增操作的字段值是否相等。
在步骤S237,当删除操作和新增操作的字段值不相等时,并生成描述该异常的备注,以得到第三备注。
例如,当删除操作和新增操作所针对的库表的表名相同时,可以读取delete语句中where条件里的字段和字段值(或者也称为value)和insert语句中where条件里的字段和字段值(或者也称为value),对比delete语句中where条件里的字段和字段值和insert语句中where条件里的字段和字段值,如果相等,可以计算关键字次数,然后返回关键字,关键字总次数,脚本名称和备注,该备注包括按主键删除后新增无问题。
如果不相等,计算关键字次数,然后返回关键字,关键字总次数,脚本名称和第三备注,第三备注包括按主键删除未对应新增。
图9示意性示出了根据本公开实施例的确定提版登记信息与备注是否匹配的流程图之三,参照图9,在一些具体实施例中,初步检测结果包括第三备注,判断提版登记信息的内容与备注描述的异常是否匹配的步骤还包括步骤S2515至步骤S2517。
在步骤S2515,根据提版登记信息的内容,判断在执行删除操作后是否需要执行新增操作。
在步骤S2516,当在执行删除操作后不需执行新增操作时,确定提版登记信息的内容与第三备注描述的异常相匹配。否则,确定提版登记信息的内容与第三备注描述的异常不匹配。
在步骤S2517,记录提版登记信息中对不执行新增操作的解释。
在本公开的实施例中,当待测脚本的操作类型为删除操作和新增操作时,相应的提版登记信息可以包括脚本名称、脚本提版路径、提版人员、操作表名、是否按主键删除、是否涉及多张表DML操作、未按主键删除原因、涉及多张表DML操作原因、是否删除后对应新增以及未对应新增原因等。当delete语句中where条件里的字段和字段值和insert语句中where条件里的字段和字段值不同时,可以将该异常记录至备注中,以得到第三备注。当检测到第三备注时,可以查询提版登记信息中“是否删除后对应新增”这一项,当该项为“否”时,可以确定提版登记信息的内容的描述与第三备注描述的异常相匹配,进而可以记录未对应新增原因,同时确定待测脚本通过检测。否则,确定待测脚本未通过检测。
可选地,当操作类型包括删除操作和与删除操作相关联的更新操作时,同样可以执行上述的步骤,执行过程同样包括第一主键的一致性识别、表名的一致性识别等,具体可以参见前述实施例,故在此不再赘述。
在一些具体实施例中,待测脚本的操作类型还包括清表操作,步骤S230还包括步骤S238。
在步骤S238,获取清表操作所针对的库表的表名并生成包含清表操作的备注,以得到第四备注。
初步检测结果包括第四备注,判断提版登记信息的内容与备注描述的异常是否匹配的步骤还包括步骤S2518。
在步骤S2518,当清表操作所针对的库表的表名与提版登记信息中的表名一致时,确定提版登记信息的内容与第四备注描述的异常相匹配。这样,对于清表操作,可以保证表名正确,防止一旦表名出错带来的不可恢复等严重问题。
可选地,当待测脚本的操作类型包括清表操作时,提版登记信息可以包括脚本名称、脚本提版路径、提版人员、操作表名、是否需要备份,清空表原因等。
在一些具体实施例中,当待测脚本的关键字只有insert时,可以认为该待测脚本的操作类型为新增数据,该待测脚本风险较低,为节省计算机资源,可以使该种待测脚本直接通过测试,因此,可以仅计算关键字次数,然后返回关键字、关键字总次数、脚本名称并生成相应的备注,示例性地,备注可以包括该待测脚本可以直接通过测试。
本发明目的是通过自动化方法检查各应用数据库的脚本,替代原先的人工检查方法,缩短数据库人员检查时间,并在一定程度上提高检查率,能发现一些因为人为失误忽略的问题。
基于上述的数据库脚本的检测方法,本公开还提供了一种数据库脚本的检测装置。以下将结合图10对该装置进行详细描述。
图10示意性示出了根据本公开实施例的数据库脚本的检测装置的结构框图。
如图10所示,该实施例的数据库脚本的检测装置1000包括获取模块1010、第一处理模块1020、第一检测模块1030、第二获取模块1040和第二检测模块1050。
获取模块1010用于获取待测脚本的关键字。在一实施例中,获取模块1010可以用于执行前文描述的步骤S210,在此不再赘述。
第一处理模块1020用于根据关键字确定待测脚本的操作类型。在一实施例中,第一处理模块1020可以用于执行前文描述的步骤S220,在此不再赘述。
第一检测模块1030用于执行与操作类型相匹配的初步检查操作,以生成初步检查结果。在一实施例中,第一检测模块1030可以用于执行前文描述的步骤S230,在此不再赘述。
第二获取模块1040根据待测脚本的操作类型,获取待测脚本的需求清单,需求清单包括待测脚本的提版登记信息。在一实施例中,第二获取模块1040可以用于执行前文描述的步骤S240,在此不再赘述。
第二检测模块1050根据提版登记信息和初步检查结果,判断待测脚本是否通过检测。在一实施例中,第二检测模块1050可以用于执行前文描述的步骤S250,在此不再赘述。
由此,本公开的实施例提供了一种自动化的数据库脚本的检测装置,测试过程包括基于待测脚本操作类型执行的初步检查,和基于初步检查结果和需求清单执行的二次复核,这样,可以复用需求清单作为复核的决策依据,从而在不增加额外资源的情况下,提高脚本测试速度,同时还能保证较高的检测准确率。
根据本公开的实施例,获取模块1010、第一处理模块1020、第一检测模块1030、第二获取模块1040和第二检测模块1050中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块1010、第一处理模块1020、第一检测模块1030、第二获取模块1040和第二检测模块1050中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块1010、第一处理模块1020、第一检测模块1030、第二获取模块1040和第二检测模块1050中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
在一些具体实施例中,初步检查结果包括描述待测脚本的异常的备注。
根据提版登记信息和初步检查结果,判断待测脚本是否通过检测,包括:
当提版登记信息的内容与备注描述的异常相匹配时,确定待测脚本通过检测。
在一些具体实施例中,执行与操作类型相匹配的初步检查操作,以生成初步检查结果,包括:
当操作类型包括第一预设操作时,根据第一预设操作所针对的库表的表名,在表结构主键表中获取该库表的第一主键,其中,第一预设操作包括更新操作、新增操作和删除操作中的至少一者。
根据获取到的第一主键和第一预设操作的查询条件,判断待测脚本是否存在异常。
当待测脚本存在异常时,生成描述该异常的备注,以得到第一备注。
在一些具体实施例中,初步检测结果包括第一备注,判断提版登记信息的内容与备注描述的异常是否匹配,包括:
根据提版登记信息的内容,判断第一预设操作是否基于主键执行。
当第一预设操作不基于主键执行时,确定提版登记信息的内容的描述与第一备注描述的异常相匹配。
在一些具体实施例中,第一预设操作包括删除操作和与删除操作具有关联的新增操作。
执行与操作类型相匹配的初步检查操作,以生成初步检查结果,还包括:
判断删除操作和新增操作所针对的库表的表名是否相同。
当删除操作和新增操作所针对的库表的表名不一致时,确定待测脚本存在异常,并生成描述该异常的备注,以得到第二备注。
在一些具体实施例中,初步检测结果包括第二备注,判断提版登记信息的内容与备注描述的异常是否匹配,包括:
根据提版登记信息的内容,判断删除操作和新增操作是否涉及多个库表。
当删除操作和新增操作涉及多个库表时,确定提版登记信息的内容与第二备注描述的异常相匹配。
在一些具体实施例中,执行与操作类型相匹配的初步检查操作,以生成初步检查结果,还包括:
当删除操作和新增操作所针对的库表的表名相同时,判断删除操作和新增操作的字段值是否相等。
当删除操作和新增操作的字段值不相等时,并生成描述该异常的备注,以得到第三备注。
在一些具体实施例中,初步检测结果包括第三备注,判断提版登记信息的内容与备注描述的异常是否匹配,包括:
根据提版登记信息的内容,判断在执行删除操作后是否需要执行新增操作。
当在执行删除操作后不需执行新增操作时,确定提版登记信息的内容与第三备注描述的异常相匹配。以及,
记录提版登记信息中对不执行新增操作的解释。
在一些具体实施例中,待测脚本的操作类型还包括清表操作,例如清表操作,执行与操作类型相匹配的初步检查操作,以生成初步检查结果,包括:
获取清表操作所针对的库表的表名并生成包含清表操作的备注,以得到第四备注。
初步检测结果包括第四备注,判断提版登记信息的内容与备注描述的异常是否匹配,包括:
当清表操作所针对的库表的表名与提版登记信息中的表名一致时,确定提版登记信息的内容与第四备注描述的异常相匹配。
图11示意性示出了根据本公开实施例的适于实现数据库脚本的检测方法的电子设备的方框图。
如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、ROM 1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口1105也连接至总线1104。电子设备1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据库脚本的检测方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1102和/或RAM 1103和/或ROM 1102和RAM 1103以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的数据库脚本的检测方法。
在该计算机程序被处理器1101执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1109被下载和安装,和/或从可拆卸介质1111被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (13)

1.一种数据库脚本的检测方法,其特征在于,包括:
获取待测脚本的关键字;
根据所述关键字确定所述待测脚本的操作类型;
执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果;
根据所述待测脚本的操作类型,获取所述待测脚本的需求清单,所述需求清单包括所述待测脚本的提版登记信息;
根据所述提版登记信息和所述初步检查结果,判断所述待测脚本是否通过检测。
2.根据权利要求1所述的检测方法,其特征在于,所述初步检查结果包括描述所述待测脚本的异常的备注;
所述根据所述提版登记信息和所述初步检查结果,判断所述待测脚本是否通过检测,包括:
当所述提版登记信息的内容与所述备注描述的异常相匹配时,确定所述待测脚本通过检测。
3.根据权利要求2所述的检测方法,其特征在于,所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,包括:
当所述操作类型包括第一预设操作时,根据所述第一预设操作所针对的库表的表名,在表结构主键表中获取该库表的第一主键,其中,所述第一预设操作包括更新操作、新增操作和删除操作中的至少一者;
根据获取到的所述第一主键和所述第一预设操作的查询条件,判断所述待测脚本是否存在异常;
当所述待测脚本存在异常时,生成描述该异常的备注,以得到第一备注。
4.根据权利要求3所述的检测方法,其特征在于,所述初步检测结果包括所述第一备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
根据所述提版登记信息的内容,判断所述第一预设操作是否基于主键执行;
当所述第一预设操作不基于主键执行时,确定所述提版登记信息的内容的描述与所述第一备注描述的异常相匹配。
5.根据权利要求3所述的检测方法,其特征在于,所述第一预设操作包括删除操作和与删除操作具有关联的新增操作;
所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,还包括:
判断所述删除操作和所述新增操作所针对的库表的表名是否相同;
当所述删除操作和所述新增操作所针对的库表的表名不一致时,确定所述待测脚本存在异常,并生成描述该异常的备注,以得到第二备注。
6.根据权利要求5所述的检测方法,其特征在于,所述初步检测结果包括所述第二备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
根据所述提版登记信息的内容,判断所述删除操作和所述新增操作是否涉及多个库表;
当所述删除操作和所述新增操作涉及多个库表时,确定所述提版登记信息的内容与所述第二备注描述的异常相匹配。
7.根据权利要求5所述的检测方法,其特征在于,所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,还包括:
当所述删除操作和所述新增操作所针对的库表的表名相同时,判断所述删除操作和所述新增操作的字段值是否相等;
当所述删除操作和所述新增操作的字段值不相等时,并生成描述该异常的备注,以得到第三备注。
8.根据权利要求7所述的检测方法,其特征在于,所述初步检测结果包括所述第三备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
根据所述提版登记信息的内容,判断在执行所述删除操作后是否需要执行所述新增操作;
当在执行所述删除操作后不需执行所述新增操作时,确定所述提版登记信息的内容与所述第三备注描述的异常相匹配;以及,
记录所述提版登记信息中对不执行所述新增操作的解释。
9.根据权利要求2所述的检测方法,其特征在于,所述待测脚本的操作类型还包括清表操作,所述执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果,包括:
获取所述清表操作所针对的库表的表名并生成包含所述清表操作的备注,以得到第四备注;
所述初步检测结果包括所述第四备注,判断所述提版登记信息的内容与所述备注描述的异常是否匹配,包括:
当所述清表操作所针对的库表的表名与所述提版登记信息中的表名一致时,确定所述提版登记信息的内容与所述第四备注描述的异常相匹配。
10.一种数据库脚本的检测装置,其特征在于,包括:
获取模块,用于获取待测脚本的关键字;
第一处理模块,用于根据所述关键字确定所述待测脚本的操作类型;
第一检测模块,用于执行与所述操作类型相匹配的初步检查操作,以生成初步检查结果;
第二获取模块,根据所述待测脚本的操作类型,获取所述待测脚本的需求清单,所述需求清单包括所述待测脚本的提版登记信息;
第二检测模块,根据所述提版登记信息和所述初步检查结果,判断所述待测脚本是否通过检测。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~9中任一项所述的检测方法。
12.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~9中任一项所述的检测方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~9中任一项所述的检测方法。
CN202310551711.7A 2023-05-16 2023-05-16 数据库脚本的检测方法、装置、设备、介质和程序产品 Pending CN116578566A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310551711.7A CN116578566A (zh) 2023-05-16 2023-05-16 数据库脚本的检测方法、装置、设备、介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310551711.7A CN116578566A (zh) 2023-05-16 2023-05-16 数据库脚本的检测方法、装置、设备、介质和程序产品

Publications (1)

Publication Number Publication Date
CN116578566A true CN116578566A (zh) 2023-08-11

Family

ID=87539215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310551711.7A Pending CN116578566A (zh) 2023-05-16 2023-05-16 数据库脚本的检测方法、装置、设备、介质和程序产品

Country Status (1)

Country Link
CN (1) CN116578566A (zh)

Similar Documents

Publication Publication Date Title
US11487539B2 (en) Systems and methods for automating and monitoring software development operations
US10885000B2 (en) Repairing corrupted references
CN108197036B (zh) 用于确定增量代码的覆盖率信息的方法和装置
US11294755B2 (en) Automated method of identifying troubleshooting and system repair instructions using complementary machine learning models
CN113626558B (zh) 一种基于智能推荐的字段标准化的方法和系统
US20190362291A1 (en) Generating and publishing a problem ticket
CN116185393A (zh) 接口文档的生成方法、装置、设备、介质及产品
CN116578566A (zh) 数据库脚本的检测方法、装置、设备、介质和程序产品
CN113032256B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
CN114721943A (zh) 测试范围的确定方法和装置
CN113918525A (zh) 数据交换调度方法、系统、电子设备、介质及程序产品
CN114443721A (zh) 一种数据处理方法、装置、电子设备及存储介质
Parthy et al. Using machine learning to recommend correctness checks for geographic map data
CN111813691B (zh) 测试问题排查方法、装置、电子设备和介质
US11829230B2 (en) Globally unique error codes for knowledge document indexing in software systems
CN116680184A (zh) 代码扫描方法、装置、电子设备和介质
CN116661857A (zh) 数据提取方法、装置、设备及存储介质
CN117193879A (zh) 用于应用的流水线配置检测方法及装置
CN117439928A (zh) 业务系统的链路测试方法、装置、电子设备及存储介质
CN116243961A (zh) 版本文件的处理方法、装置、电子设备及存储介质
CN114996265A (zh) 数据血缘关系获取方法、装置、设备和计算机程序产品
CN116484388A (zh) 代码夹带识别方法、装置、电子设备及介质
CN116450416A (zh) 软件测试用例的冗余校验方法、装置、电子设备及介质
CN116414600A (zh) 数据自动核对方法、装置、设备及存储介质
CN117112063A (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