[发明专利]数据库存储过程的依赖信息的确定方法、装置及电子设备在审
申请号: | 202310199153.2 | 申请日: | 2023-03-03 |
公开(公告)号: | CN116069808A | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 戚云琪;周逢源;钱江;沈伟伟 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2457 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 周春枚 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 存储 过程 依赖 信息 确定 方法 装置 电子设备 | ||
1.一种数据库存储过程的依赖信息的确定方法,其特征在于,包括:
对目标存储过程的源代码进行代码解析,得到多个代码节点,其中,所述目标存储过程为存储在数据库中的一组用于完成目标功能的SQL语句集合,每个所述代码节点用于表征所述目标存储过程的源代码中的一个函数或变量;
基于多个所述代码节点生成抽象语法树,其中,每个所述代码节点与所述抽象语法树中的一个树节点相对应;
根据所述抽象语法树构建目标元数据,其中,所述目标元数据至少包括多个所述代码节点之间的关联关系以及每个所述代码节点在所述目标存储过程的源代码中的位置信息;
依据所述目标元数据对多个所述代码节点进行递归处理,得到所述目标存储过程的依赖信息,其中,所述依赖信息至少包括第一依赖信息和第二依赖信息,所述第一依赖信息用于表征与所述目标存储过程存在依赖关系的存储过程,所述第二依赖信息用于表征所述目标存储过程的源代码在运行时所需要引用的数据。
2.根据权利要求1所述的方法,其特征在于,根据所述抽象语法树构建目标元数据,包括:
对所述抽象语法树进行解析,得到每个所述树节点在所述抽象语法树中的所在层次以及所述抽象语法树中所有树节点之间的连接关系;
根据所述连接关系确定多个所述代码节点之间的关联关系;
确定每个所述树节点在所述抽象语法树中的所在层次为该树节点对应的代码节点在所述目标存储过程的源代码中的所在行数;
根据所述所在行数确定每个所述代码节点在所述目标存储过程的源代码中的位置信息;
根据所述位置信息以及多个所述代码节点之间的关联关系生成所述目标元数据。
3.根据权利要求2所述的方法,其特征在于,根据所述位置信息以及多个所述代码节点之间的关联关系生成所述目标元数据,包括:
获取每个所述代码节点对应的调用方式;
根据所述调用方式、所述位置信息以及多个所述代码节点之间的关联关系生成所述目标元数据。
4.根据权利要求1所述的方法,其特征在于,依据所述目标元数据对多个所述代码节点进行递归处理,得到所述目标存储过程的依赖信息,包括:
依据所述目标元数据从所述抽象语法树中随机选取一个树节点作为待处理树节点,并确定所述抽象语法树中与所述待处理树节点存在关联关系,并且位于所述待处理树节点下层的树节点为目标树节点;
确定所述待处理树节点所对应的代码节点为起始代码节点;
从所述起始代码节点开始,根据所述待处理树节点与所述目标树节点之间的关联关系,对多个所述代码节点中的至少一个目标代码节点进行向下递归处理,得到每个所述目标代码节点对应的第一节点依赖信息和/或第二节点依赖信息,其中,所述目标代码节点为所述目标树节点对应的代码节点,所述第一节点依赖信息用于表征所述目标代码节点在运行时所需要调用的存储过程,所述第二节点依赖信息用于表征所述目标代码节点在运行时所需要引用的数据;
根据每个所述目标代码节点对应的第一节点依赖信息确定所述目标存储过程的第一依赖信息;
根据每个所述目标代码节点对应的第二节点依赖信息确定所述目标存储过程的第二依赖信息。
5.根据权利要求4所述的方法,其特征在于,从所述起始代码节点开始,根据所述待处理树节点与所述目标树节点之间的关联关系,对多个所述代码节点中的至少一个目标代码节点进行向下递归处理,得到每个所述目标代码节点对应的第一节点依赖信息和/或第二节点依赖信息,包括:
检测当前正在进行向下递归处理的代码节点是否为第一代码节点,其中,所述第一代码节点为需要调用与所述目标存储过程存在依赖关系的存储过程的代码节点;
在当前正在进行向下递归处理的代码节点为所述第一代码节点时,检测所述第一代码节点中是否存在迭代标识,其中,所述迭代标识用于表征所述第一代码节点已完成迭代处理,所述迭代处理用于通过所述第一代码节点对与所述目标存储过程存在依赖关系的存储过程进行程序代码解析操作;
在所述第一代码节点中存在所述迭代标识时,从所述第一代码节点开始,根据所述待处理树节点与所述目标树节点之间的关联关系,对多个所述代码节点中的至少一个所述目标代码节点进行向下递归处理,得到每个所述目标代码节点对应的第一节点依赖信息和/或第二节点依赖信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310199153.2/1.html,转载请声明来源钻瓜专利网。