System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() SQL语句的检测方法、装置、设备、介质及程序产品制造方法及图纸_技高网

SQL语句的检测方法、装置、设备、介质及程序产品制造方法及图纸

技术编号:40963502 阅读:5 留言:0更新日期:2024-04-18 20:42
本申请公开了一种SQL语句的检测方法、装置、设备、介质及程序产品,属于数据库领域。SQL语句的检测方法包括:解析第一数据库下正常运行的结构化查询语言SQL语句,得到SQL动态条件;根据SQL动态条件,生成SQL动态条件库;根据第一SQL语句的格式将SQL动态条件库中的条件数据进行组装,得到至少一个第一语句,并将至少一个第一语句在第一数据库上执行,得到至少一个第一执行结果;根据第二SQL语句的格式将SQL动态条件库中的条件数据进行组装,得到至少一个第二语句,并将至少一个第二语句在第二数据库上执行,得到至少一个第二执行结果,第二SQL语句为第一SQL语句经过格式转换后得到的语句,第二数据库为第一数据库经过转换后得到的数据库;根据至少一个第一执行结果和至少一个第二执行结果,判断第一SQL语句至第二SQL语句的格式转换过程是否有误。将人工逐一验证变成程序化自动验证,能够提高语句检测效率,也能减少人为检测的误差,提高语句检测的正确率。

【技术实现步骤摘要】

本申请属于数据库领域,尤其涉及一种sql语句的检测方法、装置、设备、介质及程序产品。


技术介绍

1、数据库是按照数据结构来组织、存储和管理数据的仓库,是互联网领域的重要组成部分。sql(structured query language,结构化查询语言)语句是用于访问和处理数据库的标准的计算机语言。

2、数据库转换就是将一种数据库转换为另一种数据库,例如,将oracle数据库转换为数据库goldendb,在数据库转换过程中,数据库支持的sql语句转换是开发最重要的组合部分,通常数据库厂家提供项目sql的转换工具,例如,oracle数据库转换为数据库goldendb,goldendb提供对应的转换工具进行sql语句转换。但是厂家并不能保证转换后的sql的正确性以及质量,待转换完成后,需要开发人员逐个进行检查与测试,检测效率较低,检测准确率较低。


技术实现思路

1、本申请实施例提供一种sql语句的检测方法、装置、设备、介质及程序产品,将人工逐一验证变成程序化自动验证,能够提高语句检测效率,也能减少人为检测的误差,提高语句检测的正确率。

2、一方面,本申请实施例提供了一种sql语句的检测方法,包括:

3、解析第一数据库下正常运行的结构化查询语言sql语句,得到sql动态条件;

4、根据sql动态条件,生成sql动态条件库;

5、根据第一sql语句的格式将sql动态条件库中的条件数据进行组装,得到至少一个第一语句,并将至少一个第一语句在第一数据库上执行,得到至少一个第一执行结果;

6、根据第二sql语句的格式将sql动态条件库中的条件数据进行组装,得到至少一个第二语句,并将至少一个第二语句在第二数据库上执行,得到至少一个第二执行结果,第二sql语句为第一sql语句经过格式转换后得到的语句,第二数据库为第一数据库经过转换后得到的数据库;

7、根据至少一个第一执行结果和至少一个第二执行结果,判断第一sql语句至第二sql语句的格式转换过程是否有误。

8、在本申请的一些实施例中,sql动态条件包括:sql基本信息和sql涉及数据表信息;

9、根据sql动态条件,生成sql动态条件库,包括:

10、根据sql涉及数据表信息中的表信息和字段信息,查找目标测试数据库中的数据,得到数据字段条件对应的值,目标测试数据库中包括第一数据库中的部分数据;

11、根据数据字段条件对应的值更新sql涉及数据表信息;

12、根据sql基本信息和更新后的sql涉及数据表信息中的条件数据,生成sql动态条件库。

13、在本申请的一些实施例中,根据sql基本信息和更新后的sql涉及数据表信息中的条件数据,生成sql动态条件库,包括:

14、确定更新后的sql涉及数据表信息中的条件数据的数量为第一数量;

15、迭代执行以下步骤,直至生成的动态条件中包括1个条件数据;

16、从更新后的sql涉及数据表信息中选择第一数量的条件数据;根据sql基本信息和第一数量的条件数据生成动态条件;将第一数量更新为第二数量,第二数量为第一数量的1/n,n为大于或等于2的整数;

17、根据生成的多个动态条件,生成sql动态条件库。

18、在本申请的一些实施例中,第一执行结果包括:sql语句的子标识、第一语句详情以及第一语句执行结果,第二执行结果包括:sql语句的子标识、第二语句详情以及第二语句执行结果;

19、根据至少一个第一执行结果和至少一个第二执行结果,判断第一sql语句至第二sql语句的格式转换过程是否有误,包括:

20、同一子标识下,比对第一语句详情和第二语句详情;

21、若第一语句详情和第二语句详情相同,则确定第一sql语句至第二sql语句的格式转换过程无误;

22、若第二语句详情为空,则确定第一sql语句至第二sql语句的格式转换过程有误;

23、若第一语句详情和第二语句详情不同,则比对第一语句执行结果和第二语句执行结果;

24、若第一语句执行结果和第二语句执行结果相同,则确定第一sql语句至第二sql语句的格式转换过程无误;

25、若第一语句执行结果和第二语句执行结果不同,则确定第一sql语句至第二sql语句的格式转换过程有误。

26、在本申请的一些实施例中,方法还包括:

27、根据比对情况,生成比对报告,比对报告包括sql语句的子标识、sql语句所在的文件地址以及sql语句的比对结果。

28、在本申请的一些实施例中,sql基本信息包括:sql语句的标识、sql语句所在的文件地址、sql语句的类型以及sql语句的条件对象;sql涉及数据表信息包括:数据库表名、sql语句的标识、数据库字段名称、数据字段条件名称以及数据字段条件类型。

29、在本申请的一些实施例中,sql动态条件库包括:sql语句的标识、sql语句的子标识以及sql语句的条件。

30、第二方面,本申请实施例提供了一种sql语句的检测装置,装置包括:

31、解析模块,用于解析第一数据库下正常运行的结构化查询语言sql语句,得到sql动态条件;

32、生成模块,用于根据sql动态条件,生成sql动态条件库;

33、第一执行模块,用于根据第一sql语句的格式将sql动态条件库中的条件数据进行组装,得到至少一个第一语句,并将至少一个第一语句在第一数据库上执行,得到至少一个第一执行结果;

34、第二执行模块,用于根据第二sql语句的格式将sql动态条件库中的条件数据进行组装,得到至少一个第二语句,并将至少一个第二语句在第二数据库上执行,得到至少一个第二执行结果,第二sql语句为第一sql语句经过格式转换后得到的语句,第二数据库为第一数据库经过转换后得到的数据库;

35、判断模块,用于根据至少一个第一执行结果和至少一个第二执行结果,判断第一sql语句至第二sql语句的格式转换过程是否有误。

36、第三方面,本申请实施例提供一种sql语句的检测设备,设备包括:处理器以及存储有计算机程序指令的存储器;

37、处理器执行计算机程序指令时实现上述任一实施例的sql语句的检测方法。

38、第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述任一实施例的sql语句的检测方法。

39、第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行上述任一实施例的sql语句的检测方法。

40、根据本申请实施例的sql语句的检测方法、装置、设备、介质及程序产品,根据第一数据库下正常运行的结构化查询语言sql语句涉及的sql动态条件生成本文档来自技高网...

【技术保护点】

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

2.根据权利要求1所述的方法,其特征在于,所述SQL动态条件包括:SQL基本信息和SQL涉及数据表信息;

3.根据权利要求2所述的方法,其特征在于,所述根据所述SQL基本信息和更新后的所述SQL涉及数据表信息中的条件数据,生成所述SQL动态条件库,包括:

4.根据权利要求1所述的方法,其特征在于,所述第一执行结果包括:SQL语句的子标识、所述第一语句详情以及所述第一语句执行结果,所述第二执行结果包括:SQL语句的子标识、所述第二语句详情以及所述第二语句执行结果;

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

6.根据权利要求2所述的方法,其特征在于,所述SQL基本信息包括:SQL语句的标识、SQL语句所在的文件地址、SQL语句的类型以及SQL语句的条件对象;所述SQL涉及数据表信息包括:数据库表名、SQL语句的标识、数据库字段名称、数据字段条件名称以及数据字段条件类型。

7.根据权利要求2所述的方法,其特征在于,所述SQL动态条件库包括:SQL语句的标识、SQL语句的子标识以及SQL语句的条件。

8.一种SQL语句的检测装置,其特征在于,所述装置包括:

9.一种SQL语句的检测设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述的SQL语句的检测方法。

11.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-7中任意一项所述的SQL语句的检测方法。

...

【技术特征摘要】

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

2.根据权利要求1所述的方法,其特征在于,所述sql动态条件包括:sql基本信息和sql涉及数据表信息;

3.根据权利要求2所述的方法,其特征在于,所述根据所述sql基本信息和更新后的所述sql涉及数据表信息中的条件数据,生成所述sql动态条件库,包括:

4.根据权利要求1所述的方法,其特征在于,所述第一执行结果包括:sql语句的子标识、所述第一语句详情以及所述第一语句执行结果,所述第二执行结果包括:sql语句的子标识、所述第二语句详情以及所述第二语句执行结果;

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

6.根据权利要求2所述的方法,其特征在于,所述sql基本信息包括:sql语句的标识、sql语句所在的文件地址、sql语句的类型以及sql语句的条件对象;所...

【专利技术属性】
技术研发人员:田培均
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:

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

1