一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

转换PLSQL代码的方法、装置、电子设备及存储介质与流程

2022-07-31 06:49:07 来源:中国专利 TAG:

技术特征:
1.一种转换plsql代码的方法,其特征在于,包括:获取待转换的plsql代码文本,其中,所述plsql代码文本携带有loop循环块语句对象、cursor循环fetch语句对象和exit when语句对象;对所述plsql代码文本进行翻译处理,生成与所述plsql代码文本对应的语法树,其中,所述语法树包括有与所述loop循环块语句对象对应的loop stmt节点、与所述cursor循环fetch语句对象对应的fetch stmt节点、以及与所述exit when语句对象对应的exit stmt节点;对所述语法树中的节点进行遍历,并获取所述语法树中所述loop stmt节点、所述fetch stmt节点和所述exit stmt节点之间的节点位置顺序;根据所述节点位置顺序对所述plsql代码文本进行识别处理,得到所述plsql代码文本的场景类型;根据所述场景类型对所述plsql代码文本进行转换处理,得到目标代码文本。2.根据权利要求1所述的转换plsql代码的方法,其特征在于,所述对所述语法树中的节点进行遍历,并获取所述语法树中所述loop stmt节点、所述fetch stmt节点和所述exit stmt节点之间的节点位置顺序,包括:对所述语法树中的节点进行遍历,确定所述语法树的节点位置顺序为:所述loop stmt节点的第一个子节点为所述fetch stmt节点,并且所述loop stmt节点的第二个子节点为所述exit stmt节点。3.根据权利要求2所述的转换plsql代码的方法,其特征在于,所述根据所述节点位置顺序对所述plsql代码文本进行识别处理,得到所述plsql代码文本的场景类型,包括:在所述节点位置顺序为所述loop stmt节点的第一个子节点为所述fetch stmt节点,并且所述loop stmt节点的第二个子节点为所述exit stmt节点的情况下,对所述plsql代码文本进行识别处理以得到所述plsql代码文本的场景类型为:所述cursor循环fetch语句对象和所述exit when语句对象均位于所述loop循环块语句对象中。4.根据权利要求3所述的转换plsql代码的方法,其特征在于,所述根据所述场景类型对所述plsql代码文本进行转换处理,得到目标代码文本,包括:在对所述plsql代码文本进行转换处理的过程中,将所述loop循环块语句对象转换为while循环块语句对象,并且将cursor是否还有下一条数据作为所述while循环块语句对象的进入条件,以及删除所述exit when语句对象。5.根据权利要求1所述的转换plsql代码的方法,其特征在于,所述对所述语法树中的节点进行遍历,并获取所述语法树中所述loop stmt节点、所述fetch stmt节点和所述exit stmt节点之间的节点位置顺序,包括:对所述语法树中的节点进行遍历,确定所述语法树的节点位置顺序为:所述loop stmt节点的第一个子节点为所述exit stmt节点,并且所述fetch stmt节点位于所述loop stmt节点之前。6.根据权利要求5所述的转换plsql代码的方法,其特征在于,所述根据所述节点位置顺序对所述plsql代码文本进行识别处理,得到所述plsql代码文本的场景类型,包括:在所述节点位置顺序为所述loop stmt节点的第一个子节点为所述exit stmt节点,并且所述fetch stmt节点位于所述loop stmt节点之前的情况下,对所述plsql代码文本进行
识别处理以得到所述plsql代码文本的场景类型为:所述cursor循环fetch语句对象位于所述loop循环块语句对象之前,并且所述exit when语句对象均位于所述loop循环块语句对象中。7.根据权利要求6所述的转换plsql代码的方法,其特征在于,所述根据所述场景类型对所述plsql代码文本进行转换处理,得到目标代码文本,包括:在对所述plsql代码文本进行转换处理的过程中,将所述loop循环块语句对象转换为while循环块语句对象,并且将是否发现cursor数据作为所述while循环块语句对象的进入条件,以及删除所述exit when语句对象。8.一种转换plsql代码的装置,其特征在于,包括:获取单元,用于获取待转换的plsql代码文本,其中,所述plsql代码文本携带有loop循环块语句对象、cursor循环fetch语句对象和exit when语句对象;翻译单元,用于对所述plsql代码文本进行翻译处理,生成与所述plsql代码文本对应的语法树,其中,所述语法树包括有与所述loop循环块语句对象对应的loop stmt节点、与所述cursor循环fetch语句对象对应的fetch stmt节点、以及与所述exit when语句对象对应的exit stmt节点;遍历单元,用于对所述语法树中的节点进行遍历,并获取所述语法树中所述loop stmt节点、所述fetch stmt节点和所述exit stmt节点之间的节点位置顺序;识别单元,用于根据所述节点位置顺序对所述plsql代码文本进行识别处理,得到所述plsql代码文本的场景类型;转换单元,用于根据所述场景类型对所述plsql代码文本进行转换处理,得到目标代码文本。9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的转换plsql代码的方法。10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至7中任意一项所述的转换plsql代码的方法。

技术总结
本发明实施例提供了一种转换PLSQL代码的方法、装置、电子设备及存储介质,包括:获取待转换的携带有loop循环块语句对象、cursor循环fetch语句对象和exit when语句对象的PLSQL代码文本;对PLSQL代码文本进行翻译处理,生成语法树,语法树包括有对应的loop stmt节点、fetch stmt节点和exit stmt节点;对语法树中的节点进行遍历,并获取语法树中loop stmt节点、fetch stmt节点和exit stmt节点之间的节点位置顺序;根据节点位置顺序对PLSQL代码文本进行识别处理,得到PLSQL代码文本的场景类型;根据场景类型对PLSQL代码文本进行转换处理,得到目标代码文本。本发明实施例不仅能够实现自动翻译,而且还能够使得目标代码更符合编码习惯,代码可读性大大提高,还能够针对不同的场景类型针对性地进行转换处理。同的场景类型针对性地进行转换处理。同的场景类型针对性地进行转换处理。


技术研发人员:黄聪 温秋明
受保护的技术使用者:中国平安人寿保险股份有限公司
技术研发日:2022.04.25
技术公布日:2022/7/29
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献