【技术实现步骤摘要】
SQL语句的执行方法、装置、设备和存储介质
本申请涉及计算机
,特别是涉及一种SQL语句的执行方法、装置、设备和存储介质。
技术介绍
在日常工作中,数据库是存储数据不可或缺的工具。人们可以利用数据库实现对重要数据的存储,并可以从数据库中查询自身所需的数据。在数据库中,可以使用with子句定义公用表表达式(CommonTableExpression,CTE)。其中,CTE是在一个查询中定义的临时命名结果集,将在数据库查询语句中的from子句中使用,其功能类似于派生表。但是,对于大部分数据库来说,还不支持使用with子句定义一个临时命名的with函数。由于with函数不仅具有with子句定义临时命名对象的所有特性,还具有自定义函数不具有的特性,因此,对于本领域技术人员来说,如何实现数据库支持with函数功能是亟待解决的技术问题。
技术实现思路
基于此,本申请实施例提供一种SQL语句的执行方法、装置、设备和存储介质,能够实现数据库的with函数功能。第一方面,本申请实施例提供一种SQL语句 ...
【技术保护点】
1.一种SQL语句的执行方法,其特征在于,包括:/n获取待执行结构化查询语言SQL语句中所调用的目标with函数的标识,其中,所述标识包括所述目标with函数在整个SQL语句块中的层级的描述信息;/n确定所述整个SQL语句块对应的根方法执行计划,并调用与所述标识对应的子方法执行计划,其中,所述子方法执行计划与所述根方法执行计划相关;/n执行所述子方法执行计划,以完成所述待执行SQL语句的执行。/n
【技术特征摘要】 【专利技术属性】
1.一种SQL语句的执行方法,其特征在于,包括:
获取待执行结构化查询语言SQL语句中所调用的目标with函数的标识,其中,所述标识包括所述目标with函数在整个SQL语句块中的层级的描述信息;
确定所述整个SQL语句块对应的根方法执行计划,并调用与所述标识对应的子方法执行计划,其中,所述子方法执行计划与所述根方法执行计划相关;
执行所述子方法执行计划,以完成所述待执行SQL语句的执行。
2.根据权利要求1所述的方法,其特征在于,在所述获取待执行SQL语句中所调用的目标with函数的标识之前,所述方法还包括:
构建所述整个SQL语句块对应的根符号表;
以所述根符号表作为下一层符号表的父层符号表,递归向下逐层解析所述整个SQL语句块中的每条SQL语句,其中,每条SQL语句对应不同的符号表,且符号表用于存储对应SQL语句所访问的对象的信息。
3.根据权利要求2所述的方法,其特征在于,当所述待执行SQL语句中包括所述目标with函数的定义体时,解析所述待执行SQL语句,包括:
构建所述待执行SQL语句的符号表;
根据所述待执行SQL语句的符号表,先解析所述目标with函数的定义体,再解析所述待执行SQL语句中的其它组成部分。
4.根据权利要求3所述的方法,其特征在于,所述解析所述目标with函数的定义体,包括:
构建所述目标with函数的本层符号表,并将所述本层符号表作为所述待执行SQL语句的符号表的子符号表;
根据所述本层符号表中存储的对象的信息,解析所述目标with函数的定义体;
其中,所述目标with函数的定义体具有所述本层符号表中已登记的对象的访问权限,以及具有从所述本层符号表递归查找上一层符号表直到根符号表中已登记的对象的访问权限。
5.根据权利要求4所述的方法,其特征在于,在解析所述待执行SQL语句中的其它组成部分时,所述待执行SQL语句不具有所述目标with函数的本层符号表中已登记的对象的访问权限。
6.根据权利要求4所述的方法,其特征在于,所述目标with函数的本层符号表的层次号等于所述待执行SQL语句的符号表的层次号与1之和;
技术研发人员:望声宜,朱仲颖,韩朱忠,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。