一种支持动态变量的函数式SQL查询方法、装置、设备和介质制造方法及图纸

技术编号:26478618 阅读:22 留言:0更新日期:2020-11-25 19:22
本发明专利技术提供一种支持动态变量的函数式SQL查询方法、装置、设备和介质,方法包括:S1、将包含动态变量的函数式SQL的公式传递给脚本参数提取器提取出参数头标志、参数体标志和包含动态变量的参数体内容传递给脚本参数解析器;S2、所述脚本参数解析器接收到所述脚本参数提取器发送的内容时,匹配参数头标志,解析参数体标志,解析参数头标志的类型并对动态变量做分类替换处理得到公式对应的sql片段;S3、所述sql片段由脚本生成器回填到SQL中,从而生成数据库能直接执行的SQL查询语言,经数据库直接执行后即可获得SQL查询结果。本发明专利技术在原SQL为基础进行了能力扩展,将函数与动态变量相结合,使SQL查询更加的灵活多样化、精确,且易于扩展。

【技术实现步骤摘要】
一种支持动态变量的函数式SQL查询方法、装置、设备和介质
本专利技术涉及计算机
,特别涉及一种支持动态变量的函数式SQL查询方法、装置、设备和介质。
技术介绍
互联网的快速发展,使用互联网的人数不断上升,应用范围越来越广泛,每日产生的数据量也在爆炸式的增长。孕育出了大数据和云计算的时代。但这些技术都与数据库和查询语言有着很大的依赖,更大量的数据和更丰富的数据类型对数据库的数据类型支持和查询语言带来了更大的挑战。比如在智慧医疗蓬勃发展的大环境下,医疗系统下的电子病例系统要求更加精确地统计、分析月度和年度接诊患者的治愈时长、消费金额等各项信息。患者自助系统也要求为患者提供更加多样化的和更加精确的查询结果,以便患者了解自身情况。然而,目前的SQL查询语句不能支持动态变量函数式,不易扩展,灵活性差,无法为智慧医疗系统等领域提供更加多样化的和更加精确查询服务,因此也为本专利技术的产生提供了契机。
技术实现思路
本专利技术要解决的技术问题,在于提供一种支持动态变量的函数式SQL查询方法、装置、设备和介质,在原SQL为基础进行了能力本文档来自技高网...

【技术保护点】
1.一种支持动态变量的函数式SQL查询方法,其特征在于:包括下述步骤:/nS1、将包含动态变量的函数式SQL的公式传递给脚本参数提取器,由所述脚本参数提取器从公式中提取出参数头标志、参数体标志和参数体内容传递给脚本参数解析器,其中的动态变量存在于参数体内容中;/nS2、所述脚本参数解析器接收到所述脚本参数提取器发送的内容时,解析参数体标志,解析参数头标志的类型并对参数体内容中的动态变量值做如下分类处理:/n当解析得到参数头标志的类型为单参数值类型时,则获取参数体内容,直接将参数体内容中的动态变量值设置为用户输入的变量值;/n当解析得到参数头标志的类型为多参数值类型时,则获取参数体内容,将参数体...

【技术特征摘要】
1.一种支持动态变量的函数式SQL查询方法,其特征在于:包括下述步骤:
S1、将包含动态变量的函数式SQL的公式传递给脚本参数提取器,由所述脚本参数提取器从公式中提取出参数头标志、参数体标志和参数体内容传递给脚本参数解析器,其中的动态变量存在于参数体内容中;
S2、所述脚本参数解析器接收到所述脚本参数提取器发送的内容时,解析参数体标志,解析参数头标志的类型并对参数体内容中的动态变量值做如下分类处理:
当解析得到参数头标志的类型为单参数值类型时,则获取参数体内容,直接将参数体内容中的动态变量值设置为用户输入的变量值;
当解析得到参数头标志的类型为多参数值类型时,则获取参数体内容,将参数体内容中的动态变量值转化为SQL中的IN模式的静态值;
当解析得到参数头标志的类型为函数类型时,则获取参数体内容,转交给脚本参数函数执行器执行此段函数并接收函数执行结果,将该函数执行结果替换参数体内容中的动态变量值;
至此所述脚本参数解析器得到公式对应的sql片段,并将该sql片段传递给脚本生成器;
S3、所述脚本生成器在收到所述sql片段回填到SQL中,从而生成数据库能直接执行的SQL查询语言,经数据库直接执行后即可获得SQL查询结果。


2.根据权利要求1所述的一种支持动态变量的函数式SQL查询方法,其特征在于:所述参数头标志包括:
单参数值类型标志,代表此参数头标志后的参数体内容的动态变量所对应的值的个数为一个;
多参数值类型标志,代表此参数头标志后的参数体内容的动态变量所对应的值的个数为多个;
函数类型标志,代表此参数头标志后的参数体内容的动态变量所对应的值是一段函数。


3.根据权利要求1所述的一种支持动态变量的函数式SQL查询方法,其特征在于:所述步骤S2中,解析参数体标志具体是:
先判断参数体标志是选填类型还是必填类型;
若参数体标志为选填类型标志时,若参数值为空,则跳过此参数体,不做任何操作,若参数值为非空,则获取参数体内容,以对动态变量做所述分类处理;
若参数体标志为必填类型标志时,且参数值为空,则处理为异常,若参数值为非空,则获取参数体内容,以对动态变量做所述分类处理。


4.根据权利要求1所述的一种支持动态变量的函数式SQL查询方法,其特征在于:
所述函数式SQL的公式为:参数头标志+参数体标志中的起始标志+参数名+:+含有动态变量标志的SQL脚本片段+参数体标志中的结束标志;
所述参数头标志包括$、@、#,其中,$代表参数体内的动态变量值为单项,@代表参数体内的动态变量值为多项,#代表参数块内的动态变量值为函数计算得出;
参数体标志中包括[]和{},其中,[]代表参数体内的动态变量非必填,{}代表参数体内的动态变量为必填,[和{为起始标志,]和}为结束标志。
所述动态变量标志为!{}。


5.一种支持动态变量的函数式SQL查询装置,其特征在于:包括:
脚本参数提取器,用于将包含动态变量的函数式SQL的公式传递给脚本参数...

【专利技术属性】
技术研发人员:黄家昌林鑫杨辉邱道椿
申请(专利权)人:福建亿能达信息技术股份有限公司
类型:发明
国别省市:福建;35

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

1