本发明涉及数据库领域,特别是涉及一种数据库操作语句的处理方法、介质与计算机设备。
背景技术:
1、在数据库中,为了提高数据库操作语句的执行灵活性,通常支持指定参数来根据不同使用场景动态传入不同的参数值以达到不同的执行效果。在数据库接收参数时,除了获取参数的值,还需要获取参数的类型;对于用户而言,为了操作更加方便,通常会选择利用程序灵活推断类型,而不是自己显式指定类型。当前数据库通常选择根据参数值的类型意义来推断参数类型,但是这种方法对于一些特殊的参数,其自身的类型意义不明确,无法推断出参数类型。
技术实现思路
1、鉴于上述问题,本发明提出了一种克服上述问题或者至少部分地解决上述问题的数据库操作语句的处理方法、介质与计算机设备。
2、本发明的一个目的是保证能够准确推断出数据库操作语句中的参数类型。
3、本发明一个进一步的目的是保证数据操作语句的正常执行。
4、特别地,本发明提供了一种数据库操作语句的处理方法,其包括:
5、获取数据库操作语句;
6、对数据库操作语句进行解析,得到解析结果,解析结果中记录有数据库操作语句的各个组成部分以及数据库操作语句中所传入的每个参数对应的参数类型;
7、根据解析结果确定数据库操作语句中的每个参数位置对应的期望类型;
8、将每个参数对应的参数类型转换为期望类型;
9、根据期望类型执行数据库操作语句。
10、可选地,对数据库操作语句进行解析,得到解析结果的步骤包括:
11、对数据库操作语句进行编译,得到语法树;
12、确定数据库操作语句中每个参数对应的参数类型。
13、可选地,确定数据库操作语句中每个参数对应的参数类型的步骤包括:
14、为数据库操作语句中每个参数构建对应的数据结构,数据结构用于标记参数是否为外部参数;
15、将参数传入时的参数类型存储至数据结构中。
16、可选地,将参数传入时的参数类型存储至数据结构中的步骤包括:
17、判断参数是否存在指定的参数类型;
18、若是,则将指定的参数类型存储至数据结构中。
19、可选地,判断参数是否存在指定的参数类型的步骤之后还包括:
20、在参数不存在指定的参数类型的情况下,标记参数的参数类型为无效类型。
21、可选地,将每个参数对应的参数类型转换为期望类型的步骤包括:
22、根据参数对应的数据结构判断参数是否为外部参数;
23、若是,则判断参数对应的参数类型是否为无效类型;
24、若参数对应的参数类型不是无效类型,则判断参数的参数类型是否能够转换为期望类型;
25、若是,则将每个参数对应的参数类型转换为期望类型。
26、可选地,判断参数对应的参数类型是否为无效类型的步骤之后还包括:
27、在参数对应的参数类型是无效类型的情况下,将期望类型直接赋值为参数的参数类型。
28、可选地,判断参数的参数类型能够转换为期望类型的步骤之后还包括:
29、在参数的参数类型不能转换为期望类型的情况下,停止执行数据库操作语句并发出提示信息。
30、根据本发明的又一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库操作语句的处理方法。
31、根据本发明的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库操作语句的处理方法。
32、本发明的数据库操作语句的处理方法,在获取数据库操作语句之后,对数据库操作语句进行解析,得到解析结果,其中解析结果中记录有数据库操作语句的各个组成部分以及数据库操作语句中所传入的每个参数对应的参数类型,随后根据解析结果确定数据库操作语句中的每个参数位置对应的期望类型,接着将每个参数对应的参数类型转换为期望类型,最终根据期望类型执行数据库操作语句。通过此方法能够通过对数据库操作语句的解析从而准确推断出数据库操作语句中的不同位置所需要的参数类型,从而对参数进行转换,进而保证数据操作语句的正常执行。
33、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
1.一种数据库操作语句的处理方法,包括:
2.根据权利要求1所述的数据库操作语句的处理方法,其中,
3.根据权利要求2所述的数据库操作语句的处理方法,其中,
4.根据权利要求3所述的数据库操作语句的处理方法,其中,
5.根据权利要求4所述的数据库操作语句的处理方法,其中,
6.根据权利要求5所述的数据库操作语句的处理方法,其中,
7.根据权利要求6所述的数据库操作语句的处理方法,其中,
8.根据权利要求6所述的数据库操作语句的处理方法,其中,
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库操作语句的处理方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库操作语句的处理方法。