数据库访问对象名称解析方法、装置及电子设备制造方法及图纸

技术编号:26790833 阅读:14 留言:0更新日期:2020-12-22 17:05
本公开涉及数据库访问对象名称解析方法、装置及电子设备,方法包括:获取访问对象名称链表,所述访问对象名称链表包括至少一段名称,若所述访问对象名称链表包括至少两段名称,则所述至少两段名称按照层级由高到底的顺序排列;获取所述数据库对应的名称全集数据,所述名称全集数据包括所述数据库中各已知对象的名称和类型;基于所述名称全集数据,确定已知对象的匹配优先级顺序;所述已知对象类型级别越低,匹配优先级越高;基于已知对象的匹配优先级顺序,对所述访问对象名称链表中各段名称进行匹配处理,形成匹配结果。本公开实施例技术方案,解析时间短、解析结果准确、具有通用性、可扩展性,可支持任意层嵌套的对象的名称识别处理。

【技术实现步骤摘要】
数据库访问对象名称解析方法、装置及电子设备
本公开涉及数据库
,尤其涉及一种数据库访问对象名称解析方法、装置及电子设备。
技术介绍
随着计算机技术的日益发展,数据库作为计算机系统中不可或缺的一环,除存储数据外,也在提供日益强大的数据处理功能,可以通过SQL或PLSQL来访问处理数据库中的数据。数据库中的对象从逻辑上看是分层存储的。图1是本公开提供的一种数据库对象的层次关系图。一个数据库实例可以管理多个数据库,数据库下有多个模式,模式下可以有多个数据库对象,例如包、块(函数)等。包中又可以包含块(函数)、复合变量等,复合变量又可以包括多个列。此外,块(函数)中可以进一步嵌套块(函数),列中可以进一步嵌套列。因此,当访问一个对象时,对象名称可能会由多段组成,示例性地如访问对象的名称为A.B.C.D。此种情况下,可以将该访问对象的名称理解为包.复合变量.列.列;或者可以将该访问对象的名称理解为模式.包.变量.列;或者可以将该访问对象的名称理解为库.模式.包.变量;或者可以将该访问对象的名称理解为库.模式.包.变量。由于访问对象的名称可以理解为多种形式,在实际中,如何对访问对象的名称进行解析,是数据库管理系统必须解决的一个问题。但是目前缺乏较佳的针对于数据库访问对象的名称进行有效解析的方法。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据库访问对象名称解析方法、装置及电子设备。第一方面,本公开提供了一种数据库访问对象名称解析方法,包括:获取访问对象名称链表,所述访问对象名称链表包括至少一段名称,若所述访问对象名称链表包括至少两段名称,则所述至少两段名称按照层级由高到底的顺序排列;获取所述数据库对应的名称全集数据,所述名称全集数据包括所述数据库中各已知对象的名称和类型;基于所述名称全集数据,确定已知对象的匹配优先级顺序;所述已知对象类型级别越低,匹配优先级越高;基于已知对象的匹配优先级顺序,对所述访问对象名称链表中各段名称进行匹配处理,形成匹配结果。第二方面,本公开还提供了一种数据库访问对象名称解析装置,包括:名称链表获取模块,用于获取访问对象名称链表,所述访问对象名称链表包括至少一段名称,若所述访问对象名称链表包括至少两段名称,则所述至少两段名称按照层级由高到底的顺序排列;全集数据获取模块,用于获取所述数据库对应的名称全集数据,所述名称全集数据包括所述数据库中各已知对象的名称和类型;顺序确定模块,用于基于所述名称全集数据,确定已知对象的匹配优先级顺序;所述已知对象类型级别越低,匹配优先级越高;匹配模块,用于基于已知对象的匹配优先级顺序,对所述访问对象名称链表中各段名称进行匹配处理,形成匹配结果。第三方面,本公开还提供了一种电子设备,包括:处理器和存储器;处理器通过调用存储器存储的程序或指令,用于执行上述任一方法的步骤。第四方面,本公开还提供了一种计算机可读存储介质,计算机可读存储介质存储程序或指令,程序或指令使计算机执行上述任一方法的步骤。本公开实施例提供的技术方案与现有技术相比具有如下优点:第一,本公开实施例提供的技术方案通过基于名称全集数据,确定已知对象的匹配优先级顺序。由于在实际中访问对象多为变量,列等,这样设置优先级顺序,可以缩短匹配的时间。第二,本公开实施例提供的技术方案给出的访问对象名称链表构建方法可以确保所形成的访问对象名称链表包括构成访问对象名称的全部段名称,进而可以确保后续解析的准确性。第三、本公开实施例提供的技术方案给出的解析方法具有通用性、可扩展性。无论需要解析的访问对象的名称有多少段名称,均可利用本公开实施例提供的技术方案进行解析。因此,其可支持任意层嵌套的对象的名称识别处理。另外,由于其具有通用性,不需要针对不同段数名称的访问对象,分别设置不同的解析方法,其可以减少程序开发的人力物力投资。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本公开提供的一种数据库对象的层次关系图;图2为本公开实施例提供的一种数据库访问对象名称解析方法的流程图;图3为本公开实施例提供的一种实现S110的方法的流程图;图4为本公开提供的另一种数据库对象的层次关系图;图5为本公开实施例提供的一种用于实现S140的方法的流程图;图6为本公开实施例提供的一种数据库访问对象名称解析装置的结构框图;图7为本公开实施例提供的电子设备的硬件结构示意图。具体实施方式为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。图2为本公开实施例提供的一种数据库访问对象名称解析方法的流程图。本公开实施例提供的数据库访问对象名称解析方法的执行时机包括但不限于下述两种时机:时机一,在词法解析之后语法解析之前的编译时的解析识别,如创建包或函数的过程中,需要用到某些变量,在使用这些变量完成创建工作时需要对该变量的名称进行解析。时机二,在执行阶段的解析识别,如由于已创建的包或函数对应的部分语句或表达式涉及某些变量,在调用已创建的包或函数的过程中,需要对所涉及的变量的名称进行解析。参见图2,该数据库访问对象名称解析方法包括:S110、获取访问对象名称链表,访问对象名称链表包括至少一段名称;若访问对象名称链表包括至少两段名称,则至少两段名称按照层级由高到底的顺序排列。可选地,访问对象,即访问目标,具体可以包括变量或列。继续参见图1,由于在实际中,数据库对象是分层存储的。这使得若访问对象的名称包括至少两段名称时,不同段名称往往代表不同层级,因此要求至少两段名称按照层级由高到底的顺序排列。示例性地,若某一访问对象名称为A.B.C.D,其中A代表库、B代表模式、C代表包,D代表变量。并且库为模式的上一层级,模式为包的上一层级,包为变量的上一层级。A.B.C.D属于按照层级由高到底的顺序排列的情况。通过多段名称,可以准确地在数据库中定位到访问对象。本步骤的实现方法有多种,本申请对此不作限制。示例性地,基于段名标识符,获取访问对象名称链表。由于在实际中,访问对象的名称长度是不确定的。通过段名标识符,将访问对象的名称识别为访问对象名称链表,可以确保所形本文档来自技高网...

【技术保护点】
1.一种数据库访问对象名称解析方法,其特征在于,包括:/n获取访问对象名称链表,所述访问对象名称链表包括至少一段名称,若所述访问对象名称链表包括至少两段名称,则所述至少两段名称按照层级由高到底的顺序排列;/n获取所述数据库对应的名称全集数据,所述名称全集数据包括所述数据库中各已知对象的名称和类型;/n基于所述名称全集数据,确定已知对象的匹配优先级顺序;所述已知对象类型级别越低,匹配优先级越高;/n基于已知对象的匹配优先级顺序,对所述访问对象名称链表中各段名称进行匹配处理,形成匹配结果。/n

【技术特征摘要】
1.一种数据库访问对象名称解析方法,其特征在于,包括:
获取访问对象名称链表,所述访问对象名称链表包括至少一段名称,若所述访问对象名称链表包括至少两段名称,则所述至少两段名称按照层级由高到底的顺序排列;
获取所述数据库对应的名称全集数据,所述名称全集数据包括所述数据库中各已知对象的名称和类型;
基于所述名称全集数据,确定已知对象的匹配优先级顺序;所述已知对象类型级别越低,匹配优先级越高;
基于已知对象的匹配优先级顺序,对所述访问对象名称链表中各段名称进行匹配处理,形成匹配结果。


2.根据权利要求1所述的数据库访问对象名称解析方法,其特征在于,所述获取访问对象名称链表,包括:
基于段名标识符,获取访问对象名称链表。


3.根据权利要求2所述的数据库访问对象名称解析方法,其特征在于,所述基于段名标识符,获取访问对象名称链表,包括:
获取所述访问对象名称中第一个标签;
将所述访问对象名称中第一个标签,作为名称链表中的第一段名称;
重复执行后续段名称识别流程,直至所述访问对象各段名称均识别完毕;
所述后续段名称识别流程包括:
获取所述访问对象名称中第2n个标签和第2n+1个标签;
若所述第2n个标签为段名标识符,所述第2n+1个标签为单词,将所述访问对象名称中第2n+1个标签,作为名称链表中的第n+1段名称;
令n=n+1;
其中,n为正整数。


4.根据权利要求3所述的数据库访问对象名称解析方法,其特征在于,若所述第2n个标签不为段名标识符,和/或,所述第2n+1个标签为单词,将所述第2n个标签和所述第2n+1个标签压回缓存栈。


5.根据权利要求1所述的数据库访问对象名称解析方法,其特征在于,所述访问对象名称链表包括a段名称;
所述基于所述已知对象的匹配优先级顺序,对所述访问对象名称链表中各段名称进行匹配处理,形成匹配结果,包括:
基于所述已知对象的匹配优先级顺序,将所述访问对象名称链表中第m段名称与所述数据库中已知对象的名称进行匹配;
若第m段名称与某一已知对象的名称相匹配,判断所述访问对象名称链表中是否包括第m+1段名称,且匹配中的所述已知对象是否有下一级已知...

【专利技术属性】
技术研发人员:杜春魁黎鑫冯玉
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:北京;11

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

1