语句重写方法、系统及装置制造方法及图纸

技术编号:39439441 阅读:16 留言:0更新日期:2023-11-19 16:22
本说明书提供语句重写方法、系统及装置,其中所述语句重写方法包括:获取与Oracle数据库对应的初始语句,并调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树;根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构;根据目标数据库对应的重写规则,对所述初始语法树对应的初始节点信息进行重写,获得所述目标树结构对应的目标节点信息;基于所述目标树结构和所述目标节点信息生成所述目标数据库对应的目标语法树,其中,所述初始语法树和所述目标语法树具有不同的树结构;通过遍历所述目标语法树生成所述初始语句对应的目标语句,其中,所述目标语句用于执行关联所述目标数据库的数据操作任务。操作任务。操作任务。

【技术实现步骤摘要】
语句重写方法、系统及装置


[0001]本说明书涉及计算机
,特别涉及语句重写方法。本说明书同时涉及一种语句重写系统,语句重写装置,一种计算设备,以及一种计算机可读存储介质。

技术介绍

[0002]随着计算机技术的持续发展,数据库的种类越来越丰富。一般Oracle、SQL Server、MySQL等数据库为通用性较强的数据库。然而随着业务的调整,不可避免的会面对数据库切换时兼容性的问题。但是数据库底层实现异常复杂,通常需要以年为单位的积累,同时Oracle、SQL Server、MySQL之间也存在着相互冲突的特性,无法通过一种标准来制定类似字符集国标一样的数据库标准。
[0003]现有技术中,通常采用维护多个版本的数据库,即,针对每种数据库开发一份代码的方法。但是这种方法维护成本较高,无法实现一份代码适用于多种数据库,使得不同数据库之间用于针对数据库进行操作的语句无法兼容使用,因此,亟需一种较为有效的方法以解决上述问题。

技术实现思路

[0004]有鉴于此,本说明书实施例提供了语句重写方法。本说明书同时涉及一种语句重写系统,语句重写装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
[0005]根据本说明书实施例的第一方面,提供了一种语句重写方法,包括:
[0006]获取与Oracle数据库对应的初始语句,并调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树;
[0007]根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构;
[0008]根据目标数据库对应的重写规则,对所述初始语法树对应的初始节点信息进行重写,获得所述目标树结构对应的目标节点信息;
[0009]基于所述目标树结构和所述目标节点信息生成所述目标数据库对应的目标语法树,其中,所述初始语法树和所述目标语法树具有不同的树结构;
[0010]通过遍历所述目标语法树生成所述初始语句对应的目标语句,其中,所述目标语句用于执行关联所述目标数据库的数据操作任务。
[0011]可选地,所述调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树,包括:
[0012]调用Oracle语法解析器,基于所述Oracle语法解析器中预置的语法规则对所述初始语句进行词法分析和语法分析;
[0013]根据词法分析结果和语法分析结果生成初始语法树。
[0014]可选地,所述根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构,包括:
[0015]遍历所述初始语法树,根据遍历结果确定所述初始语法树中树节点的节点表示信息以及节点连接信息;
[0016]基于所述节点表示信息和所述节点连接信息生成目标数据库对应的目标树结构。
[0017]可选地,所述初始语法树中任意一个初始节点信息的重写,包括:
[0018]在所述初始节点信息符合所述重写规则包含的标准信息规则的情况下,将所述初始节点信息作为目标节点信息;
[0019]在所述初始节点信息符合所述重写规则包含的语句重写规则的情况下,基于所述语句重写规则对所述初始节点信息进行重写处理,生成目标节点信息。
[0020]可选地,所述方法还包括:
[0021]在所述初始节点信息符合所述重写规则包含的非标准信息规则的情况下,生成与所述初始节点信息对应的提示信息并反馈至重写发起方;
[0022]接收所述重写发起方针对所述提示信息发送的重写语句,并将所述重写语句作为所述初始语句,执行所述调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树的步骤。
[0023]可选地,所述基于所述语句重写规则对所述初始节点信息进行重写处理,生成目标节点信息,包括:
[0024]在所述初始节点信息符合所述语句重写规则包含的函数信息规则的情况下,基于所述函数信息规则对所述初始节点信息中的函数进行重写处理,生成目标节点信息;
[0025]在所述初始节点信息符合所述语句重写规则包含的关键字信息规则的情况下,基于所述关键字信息规则对所述初始节点信息中的关键字进行重写处理,生成目标节点信息;
[0026]在所述初始节点信息符合所述语句重写规则包含的语义信息规则的情况下,基于所述语义信息规则对所述初始节点信息中的待重写信息进行重写处理,生成目标节点信息。
[0027]可选地,所述基于所述目标树结构和所述目标节点信息生成所述目标数据库对应的目标语法树,包括:
[0028]确定所述目标树结构中的树节点与所述目标节点信息之间的对应关系;
[0029]基于所述对应关系将所述目标节点信息记录至所述目标树结构中的树节点,生成所述目标数据库对应的目标语法树。
[0030]可选地,所述获取与Oracle数据库对应的初始语句,包括:
[0031]获取与Oracle数据库对应的待处理语句;
[0032]对所述待处理语句进行分页处理和注解处理,根据处理结果确定初始语句。
[0033]可选地,所述调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树,包括:
[0034]调用词法解析器对所述初始语句进行词法解析,获得与所述初始语句对应的语句分词;
[0035]调用Oracle语法解析器解析所述语句分词,获得所述Oracle数据库对应的初始语法树。
[0036]根据本说明书实施例的第二方面,提供了一种语句重写系统,包括:Oracle语法解
析器,重写单元和生成单元;
[0037]所述Oracle语法解析器,用于接收与Oracle数据库对应的初始语句并解析,获得所述Oracle数据库对应的初始语法树;
[0038]所述重写单元,用于根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构;以及根据目标数据库对应的重写规则,对所述初始语法树对应的初始节点信息进行重写,获得所述目标树结构对应的目标节点信息;
[0039]所述生成单元,用于基于所述目标树结构和所述目标节点信息生成所述目标数据库对应的目标语法树,其中,所述初始语法树和所述目标语法树具有不同的树结构;通过遍历所述目标语法树生成所述初始语句对应的目标语句。
[0040]根据本说明书实施例的第三方面,提供了一种语句重写装置,包括:
[0041]解析模块,被配置为获取与Oracle数据库对应的初始语句,并调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树;
[0042]树结构生成模块,被配置为根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构;
[0043]重写模块,被配置为根据目标数据库对应的重写规则,对所述初始语法树对应的初始节点信息进行重写,获得所述目标树结构对应的目标节点信息;
[0044]语法树生成模块,被配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种语句重写方法,其特征在于,包括:获取与Oracle数据库对应的初始语句,并调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树;根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构;根据目标数据库对应的重写规则,对所述初始语法树对应的初始节点信息进行重写,获得所述目标树结构对应的目标节点信息;基于所述目标树结构和所述目标节点信息生成所述目标数据库对应的目标语法树,其中,所述初始语法树和所述目标语法树具有不同的树结构;通过遍历所述目标语法树生成所述初始语句对应的目标语句,其中,所述目标语句用于执行关联所述目标数据库的数据操作任务。2.根据权利要求1所述的方法,其特征在于,所述调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树,包括:调用Oracle语法解析器,基于所述Oracle语法解析器中预置的语法规则对所述初始语句进行词法分析和语法分析;根据词法分析结果和语法分析结果生成初始语法树。3.根据权利要求1所述的方法,其特征在于,所述根据所述初始语法树的初始树结构生成目标数据库对应的目标树结构,包括:遍历所述初始语法树,根据遍历结果确定所述初始语法树中树节点的节点表示信息以及节点连接信息;基于所述节点表示信息和所述节点连接信息生成目标数据库对应的目标树结构。4.根据权利要求1所述的方法,其特征在于,所述初始语法树中任意一个初始节点信息的重写,包括:在所述初始节点信息符合所述重写规则包含的标准信息规则的情况下,将所述初始节点信息作为目标节点信息;在所述初始节点信息符合所述重写规则包含的语句重写规则的情况下,基于所述语句重写规则对所述初始节点信息进行重写处理,生成目标节点信息。5.根据权利要求1所述的方法,其特征在于,还包括:在所述初始节点信息符合所述重写规则包含的非标准信息规则的情况下,生成与所述初始节点信息对应的提示信息并反馈至重写发起方;接收所述重写发起方针对所述提示信息发送的重写语句,并将所述重写语句作为所述初始语句,执行所述调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树的步骤。6.根据权利要求4所述的方法,其特征在于,所述基于所述语句重写规则对所述初始节点信息进行重写处理,生成目标节点信息,包括:在所述初始节点信息符合所述语句重写规则包含的函数信息规则的情况下,基于所述函数信息规则对所述初始节点信息中的函数进行重写处理,生成目标节点信息;在所述初始节点信息符合所述语句重写规则包含的关键字信息规则的情况下,基于所述关键字信息规则对所述初始节点信息中的关键字进行重写处理,生成目标节点信息;在所述初始节点信息符合所述语句重写规则包含的语义信息规则的情况下,基于所述
语义信息规则对所述初始节点信息中的待重写信息进行重写处理,生成目标节点信息。7.根据权利要求1所述的方法,其特征在于,所述基于所述目标树结构和所述目标节点信息生成所述目标数据库对应的目标语法树,包括:确定所述目标树结构中的树节点与所述目标节点信息之间的对应关系;基于所述对应关系将所述目标节点信息记录至所述目标树结构中的树节点,生成所述目标数据库对应的目标语法树。8.根据权利要求1所述的方法,其特征在于,所述获取与Oracle数据库对应的初始语句,包括:获取与Oracle数据库对应的待处理语句;对所述待处理语句进行分页处理和注解处理,根据处理结果确定初始语句。9.根据权利要求1所述的方法,其特征在于,所述调用Oracle语法解析器解析所述初始语句,获得所述Oracle数据库对应的初始语法树,包括:调用词法解析器对所述初始语句进行词法解析,获得与所述初始语句对应的语句分词;调用Oracle语法解析器解析所述语句分词,获得所述Oracle数据库对应的初始语法树。10.一种语句重写系统,...

【专利技术属性】
技术研发人员:张君华章乐焱许洪波封伟梁高波竺旭东
申请(专利权)人:恒生电子股份有限公司
类型:发明
国别省市:

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

1