数据库操作语句的执行方法、存储介质及设备技术

技术编号:38545374 阅读:8 留言:0更新日期:2023-08-22 20:55
本发明专利技术提供了一种数据库操作语句的执行方法、存储介质及设备。数据库操作语句的执行方法,包括:获取操作语句,操作语句中配置有过程化程序的定义语句;对操作语句进行语法解析;为操作语句设置对象可见域,对象可见域用于确定操作语句的对象的调用范围;根据定义语句创建过程化程序;根据对象可见域对操作语句进行检查;若未检查出异常,执行操作语句。将过程化程序的创建行为设置在操作语句的语义解析阶段,使得过程化程序能够作为语句级的程序进行使用。因此,在使得PL/SQL编写的过程化程序能够和SQL语句联合使用的基础上,使得过程化程序能够作为语句级程序进行使用,从而节省了数据库的存储空间。了数据库的存储空间。了数据库的存储空间。

【技术实现步骤摘要】
数据库操作语句的执行方法、存储介质及设备


[0001]本专利技术涉及数据库
,特别是涉及一种数据库操作语句的执行方法、存储介质及设备。

技术介绍

[0002]结构化查询语言(Structured Query Language,简称SQL)是数据库的标准语言,是一种通用性极强的数据库语言。过程化SQL语言(Procedural Language/SQL,简称PL/SQL)是对SQL语言的扩展,在基础SQL语言的基础上增加了过程处理的内容。在数据库中,PL/SQL以块作为基本结构,每个块用于完成一个逻辑操作。
[0003]在数据库中,利用PL/SQL编写的PL程序只能以匿名块的形式作为语句级的PL程序进行使用。语句级表示程序的生命周期是语句的生命周期,语句开始该程序生效,语句结束该程序结束,不需要占用数据库空间。但是,匿名块存在无法与其他SQL语句联合使用的缺陷。

技术实现思路

[0004]本专利技术的一个目的是要提供一种能够使过程化程序以语句级程序进行使用并且能够与其他SQL语句联用的数据库操作语句的执行方法、存储介质及设备。
[0005]本专利技术一个进一步的目的是要避免为操作语句查找到错误的对象。
[0006]特别地,本专利技术提供了一种数据库操作语句的执行方法,包括:
[0007]获取操作语句,所述操作语句中配置有过程化程序的定义语句;
[0008]对所述操作语句进行语法解析;
[0009]为所述操作语句设置对象可见域,所述对象可见域用于确定所述操作语句的对象的调用范围;
[0010]根据所述定义语句创建所述过程化程序;
[0011]根据所述对象可见域对所述操作语句进行检查;
[0012]若未检查出异常,执行所述操作语句。
[0013]可选地,所述根据所述对象可见域对所述操作语句进行检查的步骤之前包括:
[0014]将所述操作语句的对象访问优先级配置为优先访问语句级过程化程序。
[0015]可选地,所述根据所述对象可见域对所述操作语句进行检查的步骤包括:
[0016]检查所述操作语句的对象是否存在;
[0017]检查是否有对所述操作语句的对象的访问权限。
[0018]可选地,所述执行所述操作语句的步骤之后包括:
[0019]清理所述操作语句的执行环境。
[0020]可选地,所述清理所述操作语句的执行环境的步骤包括:
[0021]删除所述过程化程序。
[0022]可选地,对所述操作语句进行语法解析的步骤包括:
[0023]从所述操作语句中识别所述定义语句并对所述定义语句进行语法解析。
[0024]可选地,所述根据所述定义语句创建所述过程化程序的步骤包括:
[0025]对识别出的所述定义语句进行语义解析;
[0026]执行所述定义语句以创建所述过程化程序。
[0027]可选地,所述根据所述定义语句创建所述过程化程序的步骤之后包括:
[0028]将所述过程化程序存储在内存中。
[0029]根据本申请的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据上述任一项所述的数据库操作语句的执行方法。
[0030]根据本申请的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据所述任一项上述的数据库操作语句的执行方法。
[0031]本专利技术的数据库操作语句的执行方法通过将过程化程序的定义语句配置在操作语句中,并且,通过在操作语句的语义解析阶段执行定义语句来创建过程化程序,再利用设置对象可见域的方式检查操作语句,以使操作语句在语义解析阶段能够找到创建好的过程化程序。在操作语句的执行过程中,也可以直接调用创建好的过程化程序。也就是说,将过程化程序的创建行为设置在操作语句的语义解析阶段,从而使得过程化程序的生命周期能够与操作语句的生命周期相同,换句话说,使得过程化程序能够作为语句级的程序进行使用。因此,在使得PL/SQL编写的过程化程序能够和SQL语句联合使用的基础上,使得过程化程序能够作为语句级程序进行使用。因为语句级程序无需存储在数据库中,从而节省了数据库的存储空间。而且能够与SQL语句联合使用,拓展了语句级过程化程序的使用场景。
[0032]进一步地,本专利技术的数据库操作语句的执行方法通过在根据对象可见域对操作语句进行检查之前将操作语句的对象访问优先级配置为优先访问语句级过程化程序,在数据库根据对象可见域对操作语句进行检查时,能够最优先地查找语句级的过程化程序。因此,在数据库中存在与语义解析阶段创建的语句级的过程化程序同名的模式级或数据库级的过程化程序的情况下,保证数据库能够优先查找到语句级的过程化程序,避免了为操作语句查找到错误的对象而导致操作语句执行出错的情况发生。
[0033]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0034]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0035]图1是根据本专利技术一个实施例的数据库操作语句的执行方法的示意性流程图;
[0036]图2是根据本专利技术另一个实施例的数据库操作语句的执行方法的示意性流程图;
[0037]图3是根据本专利技术又一个实施例的数据库操作语句的执行方法的示意性流程图;
[0038]图4是根据本专利技术又一个实施例的数据库操作语句的执行方法的示意性流程图;
[0039]图5是根据本专利技术一个实施例的机器可读存储介质的示意图;
[0040]图6是根据本专利技术一个实施例的计算机设备的示意图。
具体实施方式
[0041]本领域技术人员应当理解的是,下文所描述的实施例仅仅是本专利技术的一部分实施例,而不是本专利技术的全部实施例,该一部分实施例旨在用于解释本专利技术的技术原理,并非用于限制本专利技术的保护范围。基于本专利技术提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本专利技术的保护范围之内。
[0042]需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0043]如图1所示,在一个实施例中,数据库操作语句的执行方法一般性地包括:
[0044]步骤S101,获取操作语句,操作语句中配置有过程化程序的定义本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库操作语句的执行方法,包括:获取操作语句,所述操作语句中配置有过程化程序的定义语句;对所述操作语句进行语法解析;为所述操作语句设置对象可见域,所述对象可见域用于确定所述操作语句的对象的调用范围;根据所述定义语句创建所述过程化程序;根据所述对象可见域对所述操作语句进行检查;若未检查出异常,执行所述操作语句。2.根据权利要求1所述的数据库操作语句的执行方法,其中,所述根据所述对象可见域对所述操作语句进行检查的步骤之前包括:将所述操作语句的对象访问优先级配置为优先访问语句级过程化程序。3.根据权利要求1所述的数据库操作语句的执行方法,其中,所述根据所述对象可见域对所述操作语句进行检查的步骤包括:检查所述操作语句的对象是否存在;检查是否有对所述操作语句的对象的访问权限。4.根据权利要求1所述的数据库操作语句的执行方法,其中,所述执行所述操作语句的步骤之后包括:清理所述操作语句的执行环境。5.根据权利要求4所述的数据库操作语句的执行方法,其中,所述清理所述操作...

【专利技术属性】
技术研发人员:黎鑫王建华冷建全
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1