System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于SQL语法生成SQL语句的方法、装置、系统及处理器制造方法及图纸_技高网

基于SQL语法生成SQL语句的方法、装置、系统及处理器制造方法及图纸

技术编号:41721937 阅读:2 留言:0更新日期:2024-06-19 12:47
本申请公开了一种基于SQL语法生成SQL语句的方法、装置、系统及处理器,属于自动化测试领域。该方法包括:获取目标SQL语法;对目标SQL语法中的字段进行类型标识,以得到包括标识字段的标识后的目标SQL语法;循环遍历标识后的目标SQL语法中的标识字段,基于预设组合规则对标识字段进行组合,以生成多条SQL语句。本申请方案通过对SQL语法的字段进行标识并组合以生成SQL语句,可以生成所有满足SQL语法的SQL语句,提高对SQL语法的测试覆盖率。

【技术实现步骤摘要】

本申请涉及自动化测试,具体地涉及一种基于sql语法生成sql语句的方法、装置、系统及处理器。


技术介绍

1、目前人们使用的各种应用软件均离不开数据库,且当前市面上存在的数据库种类高达几十种,针对各种数据库操作的防泄漏软件也层出不穷。数据库防泄漏软件主要是针对不同的数据库语句的语法进行适配解析,从而判断用户执行的sql和设置的违规sql是否一致。现有技术中sql语句的生成基于维度模型,仅针对查询语句且仅适用olap场景,适用场景单一,无法生成全面的sql语句。因此,现有技术存在对sql语法的测试覆盖率较低的问题。


技术实现思路

1、本申请实施例的目的是提供一种基于sql语法生成sql语句的方法、装置、系统及处理器,用以解决现有技术中对sql语句的生成效率较低的问题。

2、为了实现上述目的,本申请实施例第一方面提供一种基于sql语法生成sql语句的方法,该方法包括:

3、获取目标sql语法;

4、对目标sql语法中的字段进行类型标识,以得到包括标识字段的标识后的目标sql语法;

5、循环遍历标识后的目标sql语法中的标识字段,基于预设组合规则对标识字段进行组合,以生成多条sql语句。

6、在本申请实施例中,标识字段的标识类型包括必填项、选填项以及指定参数项。

7、在本申请实施例中,循环遍历标识后的目标sql语法中的标识字段,基于预设组合规则对标识字段进行组合,以生成多条sql语句,包括:在当前遍历周期内,依次读取标识字段的标识类型;在标识字段的标识类型为必填项的情况下,将标识字段填入当前sql语句;在标识字段的标识类型为指定参数项的情况下,将标识字段对应的预设指定参数值填入当前sql语句;在标识字段的标识类型为选填项的情况下,获取标识字段的当前遍历次数;根据当前遍历次数判断标识字段是否填入当前sql语句,以得到当前sql语句;重复当前遍历周期,直至标识后的目标sql语法中的标识字段全部遍历完成,以得到多条sql语句,其中,sql语句中的字段的标识类型至少包含必填项和指定参数项。

8、在本申请实施例中,根据当前遍历次数判断标识字段是否填入当前sql语句包括:在当前遍历次数为一的情况下,确定标识字段填入当前sql语句;在当前遍历次数为非一的情况下,确定标识字段不填入当前sql语句。

9、在本申请实施例中,在标识字段为选填项且当前遍历次数为一的情况下,将与标识字段绑定的指定参数项的预设指定参数值填入当前sql语句。

10、在本申请实施例中,对多条sql语句中的标识字段为选填项的字段进行组合,以得到包括多组选填项的多条sql语句。

11、本申请实施例第二方面提供一种处理器,被配置成执行根据上述的基于sql语法生成sql语句的方法。

12、本申请实施例第三方面提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的基于sql语法生成sql语句的方法。

13、本申请实施例第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据上述的基于sql语法生成sql语句的方法。

14、本申请实施例第五方面提供一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据上述的基于sql语法生成sql语句的方法。

15、上述技术方案,首先获取目标sql语法。再对目标sql语法中的字段进行类型标识,以得到包括标识字段的标识后的目标sql语法。最后循环遍历标识后的目标sql语法中的标识字段,基于预设组合规则对标识字段进行组合,以生成多条sql语句。通过对sql语法的字段进行标识并组合以生成sql语句,可以生成所有满足sql语法的sql语句,提高对sql语法的测试覆盖率。

16、本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

本文档来自技高网...

【技术保护点】

1.一种基于SQL语法生成SQL语句的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述标识字段的标识类型包括必填项、选填项以及指定参数项。

3.根据权利要求2所述的方法,其特征在于,所述循环遍历所述标识后的目标SQL语法中的标识字段,基于预设组合规则对所述标识字段进行组合,以生成多条SQL语句,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述当前遍历次数判断所述标识字段是否填入所述当前SQL语句包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.根据权利要求2所述的方法,其特征在于,所述方法还包括:

7.一种处理器,其特征在于,被配置成执行根据权利要求1至6中任一项所述的基于SQL语法生成SQL语句的方法。

8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的基于SQL语法生成SQL语句的方法。

9.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据权利要求1至6中任一项所述的基于SQL语法生成SQL语句的方法。

10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据权利要求1至6中任一项所述的基于SQL语法生成SQL语句的方法。

...

【技术特征摘要】

1.一种基于sql语法生成sql语句的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述标识字段的标识类型包括必填项、选填项以及指定参数项。

3.根据权利要求2所述的方法,其特征在于,所述循环遍历所述标识后的目标sql语法中的标识字段,基于预设组合规则对所述标识字段进行组合,以生成多条sql语句,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述当前遍历次数判断所述标识字段是否填入所述当前sql语句包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.根据权利要求2所述的方法,其特征在于,所述方法还包括:

...

【专利技术属性】
技术研发人员:武抒情左洪飞冯荣娴王亚珍
申请(专利权)人:北京天融信网络安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1