一种数据处理方法和装置与流程

文档序号:36149928发布日期:2023-11-23 02:13阅读:26来源:国知局
一种数据处理方法和装置与流程

本发明涉及数据处理,尤其涉及一种数据处理方法和装置。


背景技术:

1、目前对于将oracle存储过程转换为perl脚本的转换方式,其首要步骤为:人工通读存储过程,提取其中的execute、insert、delete、update、merge语句,以生成固定格式的xlsx格式映射文件。映射文件主要包含两部分内容:对主sql(structured querylanguage,结构化查询语言)的描述以及对子sql的描述。

2、在实现本发明过程中,发明人发现现有技术中至少存在如下问题:该步骤主要依赖人工编辑完成,而存储过程文件往往行数较多,导致人工编辑效率极其低下。另外,存储过程中存在多种复杂关系,映射文件生成后为保证正确性需反复校验,导致整体效率低下。


技术实现思路

1、有鉴于此,本发明实施例提供一种数据处理方法和装置,至少能够解决现有技术中依赖人工编辑、重复校验导致映射文件生成效率过低的现象。

2、为实现上述目的,根据本发明实施例的一个方面,提供了一种数据处理方法,包括:

3、接收上传的存储过程文件,将存储过程拆解为主结构化查询语言sql语句形式;

4、调用解析器将每个主sql语句解析生成抽象语法树,以得到每个主sql语句的表达式信息、以及位于每个树节点的子sql语句;

5、调用解析器将每个子sql语句解析生成抽象语法树,以得到子sql语句的表达式信息;

6、按照预先为映射文件配置的格式,将主sql语句的表达式信息、子sql语句的表达式信息均转换为文本信息,以基于文本信息生成映射文件,进而基于映射文件生成脚本文件进行测试操作。

7、可选的,所述将存储过程拆解为主结构化查询语言sql语句形式,包括:

8、识别存储过程中每段代码的头部是否存在特定关键字,以基于所述特定关键字,将所述存储过程拆解为主sql语句形式;其中主sql语句为查询sql语句、插入sql语句、删除sql语句、更新sql语句、合并sql语句中的一种或多种

9、可选的,抽象语法树中仅包含一级树节点,子sql语句为嵌套语句和子查询语句中的至少一种。

10、可选的,所述方法还包括:

11、将主sql语句、主sql语句的表达式信息、每个子sql语句和主sql语句的父子关系、子sql语句、子sql语句的表达式信息,按照处理过程,逐个存储到中间数据库中;

12、所述按照预先为映射文件配置的格式,将主sql语句的表达式信息、子sql语句的表达式信息均转换为文本信息,以基于文本信息生成映射文件,包括:

13、响应监听到子sql语句的表达式信息存储完毕,从中间数据库中读取主sql语句的表达式信息、子sql语句的表达式信息;

14、按照预先为映射文件配置的格式,将主sql语句的表达式信息、子sql语句的表达式信息均转换为文本信息;

15、按照主sql语句和子sql语句的逻辑先后顺序,将相应文本信息顺序存储至映射文件中,以生成目标映射文件。

16、可选的,其特征在于,

17、主sql语句的表达式信息包括:主sql语句的表名、源字段到目标字段的映射规则、源表及关联信息、条件表达式、排序表达式、分组表达式中的一种或多种;

18、子sql语句的表达式信息包括:字段信息、源表及关联信息、条件表达式、排序表达式、分组表达式中的一种或多种。

19、为实现上述目的,根据本发明实施例的另一方面,提供了一种数据处理装置,包括:

20、拆解模块,用于接收上传的存储过程文件,将存储过程拆解为主结构化查询语言sql语句形式;

21、解析模块,用于调用解析器将每个主sql语句解析生成抽象语法树,以得到每个主sql语句的表达式信息、以及位于每个树节点的子sql语句;

22、调用解析器将每个子sql语句解析生成抽象语法树,以得到子sql语句的表达式信息;

23、文件模块,用于按照预先为映射文件配置的格式,将主sql语句的表达式信息、子sql语句的表达式信息均转换为文本信息,以基于文本信息生成映射文件,进而基于映射文件生成脚本文件进行测试操作。

24、可选的,所述拆解模块,用于:

25、识别存储过程中每段代码的头部是否存在特定关键字,以基于所述特定关键字,将所述存储过程拆解为主sql语句形式;其中主sql语句为查询sql语句、插入sql语句、删除sql语句、更新sql语句、合并sql语句中的一种或多种

26、可选的,抽象语法树中仅包含一级树节点,子sql语句为嵌套语句和子查询语句中的至少一种。

27、可选的,所述装置还包括中间数据库,用于:

28、将主sql语句、主sql语句的表达式信息、每个子sql语句和主sql语句的父子关系、子sql语句、子sql语句的表达式信息,按照处理过程,逐个存储到中间数据库中;

29、所述文件模块,用于:

30、响应监听到子sql语句的表达式信息存储完毕,从中间数据库中读取主sql语句的表达式信息、子sql语句的表达式信息;

31、按照预先为映射文件配置的格式,将主sql语句的表达式信息、子sql语句的表达式信息均转换为文本信息;

32、按照主sql语句和子sql语句的逻辑先后顺序,将相应文本信息顺序存储至映射文件中,以生成目标映射文件。

33、可选的,其特征在于,

34、主sql语句的表达式信息包括:主sql语句的表名、源字段到目标字段的映射规则、源表及关联信息、条件表达式、排序表达式、分组表达式中的一种或多种;

35、子sql语句的表达式信息包括:字段信息、源表及关联信息、条件表达式、排序表达式、分组表达式中的一种或多种。

36、为实现上述目的,根据本发明实施例的再一方面,提供了一种数据处理电子设备。

37、本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的数据处理方法。

38、为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的数据处理方法。

39、为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算程序产品。本发明实施例的一种计算程序产品,包括计算机程序,所述程序被处理器执行时实现本发明实施例提供的数据处理方法。

40、根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:提供一种基于sql解析器的映射文件生成工具,该工具基于java实现,能够将oracle存储过程自动、快速转换为xlsx格式的映射文件,整体过程依据sql解析器构建抽象语法树,所有子sql语句、孙子sql语句等处于同一层级,以将嵌套层次从多层降为一层,以及将子查询语句从字段、表源、where条件中剥离出来,变成独立的sql语句,降低了处理难度,极大缩短了处理时间,且自动机制具有准确率高的特点,解决了现有过于依赖人力编辑和多次检查导致的耗时问题,极大地提升了映射文件的生成效率。

41、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1