System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于数据库领域,尤其涉及一种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动态条件库包括:
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语句的条件对象;所...
【专利技术属性】
技术研发人员:田培均,
申请(专利权)人:中国建设银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。