一种系统数据库切换方法、系统、计算机设备及介质与流程

专利2024-03-17  95



1.本发明涉及计算机技术领域,特别涉及一种系统数据库切换方法、系统、计算机设备及介质。


背景技术:

2.近年来,oracle数据库的结构化查询语言(structured query language,sql)和mysql数据库的sql虽然都是目前数据库领域通用和常见的sql数据库语言。随着开源数据库的广泛应用和发展,商用数据库占据主流的时代逐渐退出舞台,因此越来越多的软件公司渴望将系统的oracle数据库切换为mysql数据库。
3.在现有技术中,许多业务场景针对如何去除oracle数据库(甲骨文公司的一种商用数据库产品),更换成mysql数据库(一种开源的数据库)是一种主流的数据库变更操作,该变更操作需要用户在庞大的代码文件中逐一对系统的sql语句进行逐一改造,由于oracle数据库的sql语句修改为mysql数据库的sql语句涉及了大量繁杂、重复的人工转化操作,需要花费大量的精力,从而无法实现sql语句的自动化快速修改,降低了系统数据库的切换效率。


技术实现要素:

4.基于此,有必要针对日志整理分析难度大,日志可用性低的问题,提供一种系统数据库切换方法、系统、计算机设备及介质。
5.一种系统数据库切换方法,方法包括:在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件;加载针对mysql数据库设置的sql语句转换规则;根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
6.在其中一个实施例中,根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,包括:解析oracle语法文件,并根据解析后的oracle语法文件生成多个树形组织节点;在待处理系统的oracle数据库对应的代码数据包中逐一遍历每个树形组织节点对应的sql语句,得到多条oracle类型的sql语句;识别每条oracle类型的sql语句的oracle语法标签;根据sql语句转换规则将oracle语法标签转换为mysql语法标签;根据mysql语法标签构建mysql类型的sql语句,得到mysql数据库的sql语句。
7.在其中一个实施例中,根据sql语句转换规则将oracle语法标签转换为mysql语法标签,包括:判断oracle语法标签是否可以转换为mysql语法标签;若是,则根据sql语句转换规则将oracle语法标签转换为mysql语法标签;若否,则对oracle语法标签进行标记,并将标记后的oracle语法标签发送至客户端进行展示。
8.在其中一个实施例中,根据mysql数据库的sql语句将oracle数据库切换为mysql
数据库,包括:对mysql数据库的sql语句进行语法仿真验证,得到验证结果;在验证结果中不存在错误信息时,根据mysql数据库的sql语句构建mysql语法文件;将待处理系统的代码程序包中的oracle语法文件切换为mysql语法文件,得到目标代码程序包;将目标代码程序包连接至mysql数据库,以完成将oracle数据库切换为mysql数据库。
9.在其中一个实施例中,对mysql数据库的sql语句进行语法仿真验证,得到验证结果,包括:将mysql数据库的sql语句输入语法验证器中进行解析转换,输出转换结果;获取mysql数据库的sql语句的目标入参对象;根据目标入参对象动态构建json格式数据;将json格式数据映射关联到mysql数据库的sql语句上,得到目标sql语句;执行目标sql语句进行结果仿真,得到执行结果;将转换结果和执行结果确定为验证结果。
10.在其中一个实施例中,获取待处理系统的oracle语法文件,包括:获取待处理系统的代码程序包;在代码程序包中遍历查找所有带有oracle语法的xml格式文件;将xml格式文件确定为oracle语法文件。
11.在其中一个实施例中,按照以下步骤生成sql语句转换规则,包括:获取oracle数据库提供的第一语法关键字集合;获取mysql数据库提供的第二语法关键字集合;根据第一语法关键字集合、第二语法关键字集合、oracle数据库的语法规则以及mysql数据库的语法规则构建sql语句转换规则。
12.一种系统数据库切换系统,系统包括:oracle语法文件获取模块,用于在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件;sql语句转换规则加载模块,用于加载针对mysql数据库设置的sql语句转换规则;sql语句转换模块,用于根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;数据库切换模块,用于根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
13.一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述系统数据库切换方法的步骤。
14.一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述系统数据库切换方法的步骤。
15.上述系统数据库切换方法、系统、设备和介质,系统数据库切换系统首先在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,然后加载针对mysql数据库设置的sql语句转换规则,其次根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,最后根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。由于本技术通过获取当前系统的oracle语法文件,并配合针对mysql数据库设置的sql语句转换规则可以将oracle数据库对应的sql语句转换为mysql数据库的sql语句,从而实现了sql语句的自动化快速修改,提升了系统数据库的切换效率。
附图说明
16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
17.图1为本技术一个实施例中提供的系统数据库切换方法的实施环境图;
18.图2为本技术一个实施例中计算机设备的内部结构示意图;
19.图3为本技术一个实施例中提供的系统数据库切换方法的方法示意图;
20.图4是本技术另一个实施例中提供的系统数据库切换方法的方法示意图;
21.图5是本技术实施例提供的一种系统数据库切换系统的系统结构示意图。
具体实施方式
22.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
23.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
24.图1为一个实施例中提供的系统数据库切换方法的实施环境图,如图1所示,在该实施环境中,包括服务端110以及客户端120。
25.服务端110可以为服务器,该服务器具体可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,例如为运行oracle数据库或mysql数据库的服务器设备。客户端120连接服务端110上的数据库,客户端120在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,客户端120加载针对mysql数据库设置的sql语句转换规则,客户端120根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,客户端120根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
26.需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务端110以及客户端120可以通过蓝牙、usb(universal serial bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
27.图2为一个实施例中计算机设备的内部结构示意图。如图2所示,该计算机设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该计算机设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种系统数据库切换方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种系统数据库切换方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。
28.下面将结合附图3-4,对本技术实施例提供的系统数据库切换方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的系统数据库切换系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
29.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工
智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
30.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大系统数据库切换技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
31.请参见图3,为本技术实施例提供了一种系统数据库切换方法的流程示意图。如图3所示,本技术实施例的方法可以包括以下步骤:
32.s101,在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件;
33.其中,oracle数据库是甲骨文公司的一款商用付费的关系数据库管理系统。oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。mysql数据库是一个免费开源的关系型数据库管理系统,mysql是最流行的关系型数据库管理系统之一,在web应用方面,mysql是最好的rdbms(relational database management system,关系数据库管理系统)应用软件之一。
34.通常,待处理系统的当前所用数据库为oracle数据库。待处理系统可以是web网站系统,也可以是移动端app系统,还可以是终端的app系统。oracle语法文件是待处理系统的数据库进行开发时所采用xml格式文件编辑的代码文本数据。
35.在本技术实施例中,在确定出待处理系统的当前数据库为oracle数据库时,首先获取待处理系统的代码程序包,然后在代码程序包中遍历查找所有带有oracle语法的xml格式文件,最后将xml格式文件确定为oracle语法文件。
36.s102,加载针对mysql数据库设置的sql语句转换规则;
37.通常,sql语句转换规则是将oracle数据库对应的sql语句转换为mysql数据库的sql语句的策略。该策略可以通过oracle数据库的语法关键词和mysql数据库的语法关键词相应的等价关系以及语法规则构造sql语句转换规则。
38.在本技术实施例中,可按照以下步骤生成sql语句转换规则,首先获取oracle数据库提供的第一语法关键字集合,然后获取mysql数据库提供的第二语法关键字集合,最后根据第一语法关键字集合、第二语法关键字集合、oracle数据库的语法规则以及mysql数据库的语法规则构建sql语句转换规则。
39.在一种可能的实现方式中,在获取到待处理系统的oracle语法文件后,可加载针对mysql数据库设置的sql语句转换规则。
40.进一步地,该语法转换规则可以保存在云端或者服务端,在需要将oracle数据库对应的sql语句转换为mysql数据库的sql语句时客户端通过连接云端或者服务端,并向云端或者服务端发送请求,云端或者服务端接收到该请求后,可通过无线或者有线的方式将sql语句转换规则发送至客户端。
41.s103,根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;
42.在本技术实施例中,首先解析oracle语法文件,并根据解析后的oracle语法文件生成多个树形组织节点,然后在待处理系统的oracle数据库对应的代码数据包中逐一遍历每个树形组织节点对应的sql语句,得到多条oracle类型的sql语句,其次识别每条oracle类型的sql语句的oracle语法标签,再根据sql语句转换规则将oracle语法标签转换为mysql语法标签,最后根据mysql语法标签构建mysql类型的sql语句,得到mysql数据库的sql语句。
43.具体的,在根据sql语句转换规则将oracle语法标签转换为mysql语法标签时,首先判断oracle语法标签是否可以转换为mysql语法标签,若是,则根据sql语句转换规则将oracle语法标签转换为mysql语法标签;若否,则对oracle语法标签进行标记,并将标记后的oracle语法标签发送至客户端进行展示。
44.例如,待处理系统的oracle数据库对应的sql语句为to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'))这样一段内容,然后通过sql语句转换规则转换为mysql数据库的sql语句为date_format(now(),'%y-%m-%d%h:%i:%s'))。
45.需要说明的是,工程代码里面不仅仅只有to_char语法进行转换,还有比如dual、to_date、to_char等等语法,都是需要进行转成mysql对应的语法的。
46.进一步地,大多数都是采用普通的语法形式,少数无法转换的也有类似比较标准的java代码替代方案,还有些无法转换的给出一些标记,让开发人员能够快速找到工具无法处理的地方,然后让开发人员进行人为修改。
47.s104,根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
48.在本技术实施例中,在根据mysql数据库的sql语句将oracle数据库切换为mysql数据库时,首先对mysql数据库的sql语句进行语法仿真验证,得到验证结果,然后在验证结果中不存在错误信息时,根据mysql数据库的sql语句构建mysql语法文件,其次将待处理系统的代码程序包中的oracle语法文件切换为mysql语法文件,得到目标代码程序包,最后将目标代码程序包连接至mysql数据库,以完成将oracle数据库切换为mysql数据库。通过以上处理过程可以快速的将oracle数据库切换为mysql数据库,提升数据库的切换效率。
49.具体的,在对mysql数据库的sql语句进行语法仿真验证,得到验证结果时,首先将mysql数据库的sql语句输入语法验证器中进行解析转换,输出转换结果,然后获取mysql数据库的sql语句的目标入参对象,其次根据目标入参对象动态构建json格式数据,再将json格式数据映射关联到mysql数据库的sql语句上,得到目标sql语句,并执行目标sql语句进行结果仿真,得到执行结果,最后将转换结果和执行结果确定为验证结果。通过语法验证和结果仿真的手段可以降低sql语句转换后的错误率,保障系统高效的运行。
50.在本技术实施例中,系统数据库切换系统首先在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,然后加载针对mysql数据库设置的sql语句转换规则,其次根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,最后根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。由于本技术通过获取当前系统的oracle语法文件,并配合针对mysql数据库设置的sql语句转换规则可以将oracle数据库对应的sql语句转换为mysql数据库的sql语句,从而实现了sql语句的自动化快速修改,提升了系统数据库的切换效率。
51.请参见图4,为本技术实施例提供了一种系统数据库切换方法的流程示意图。如图4所示,本技术实施例的方法可以包括以下步骤:
52.s201,在待处理系统的当前数据库为oracle数据库时,获取待处理系统的代码程序包;
53.s202,在代码程序包中遍历查找所有带有oracle语法的xml格式文件,并将xml格式文件确定为oracle语法文件;
54.s203,加载针对mysql数据库设置的sql语句转换规则;
55.s204,解析oracle语法文件,并根据解析后的oracle语法文件生成多个树形组织节点;
56.s205,在待处理系统的oracle数据库对应的代码数据包中逐一遍历每个树形组织节点对应的sql语句,得到多条oracle类型的sql语句;
57.s206,识别每条oracle类型的sql语句的oracle语法标签;
58.s207,根据sql语句转换规则将oracle语法标签转换为mysql语法标签;
59.s208,根据mysql语法标签构建mysql类型的sql语句,得到mysql数据库的sql语句;
60.s209,根据mysql数据库的sql语句将oracle数据库切换为mysql数据库;
61.在本技术实施例中,系统数据库切换系统首先在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,然后加载针对mysql数据库设置的sql语句转换规则,其次根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,最后根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。由于本技术通过获取当前系统的oracle语法文件,并配合针对mysql数据库设置的sql语句转换规则可以将oracle数据库对应的sql语句转换为mysql数据库的sql语句,从而实现了sql语句的自动化快速修改,提升了系统数据库的切换效率。
62.下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。
63.请参见图5,其示出了本发明一个示例性实施例提供的系统数据库切换系统的结构示意图。该系统数据库切换系统可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该系统1包括oracle语法文件获取模块10、sql语句转换规则加载模块20、sql语句转换模块30、数据库切换模块40。
64.oracle语法文件获取模块10,用于在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件;
65.sql语句转换规则加载模块20,用于加载针对mysql数据库设置的sql语句转换规则;
66.sql语句转换模块30,用于根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;
67.数据库切换模块40,用于根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
68.需要说明的是,上述实施例提供的系统数据库切换系统在执行系统数据库切换方
法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的系统数据库切换系统与系统数据库切换方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
69.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
70.在本技术实施例中,系统数据库切换系统首先在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,然后加载针对mysql数据库设置的sql语句转换规则,其次根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,最后根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。由于本技术通过获取当前系统的oracle语法文件,并配合针对mysql数据库设置的sql语句转换规则可以将oracle数据库对应的sql语句转换为mysql数据库的sql语句,从而实现了sql语句的自动化快速修改,提升了系统数据库的切换效率。
71.在一个实施例中,提出了一种计算机设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
72.在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件;
73.加载针对mysql数据库设置的sql语句转换规则;
74.根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;
75.根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
76.在一个实施例中,处理器执行根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句时,具体执行以下操作:
77.解析oracle语法文件,并根据解析后的oracle语法文件生成多个树形组织节点;
78.在待处理系统的oracle数据库对应的代码数据包中逐一遍历每个树形组织节点对应的sql语句,得到多条oracle类型的sql语句;
79.识别每条oracle类型的sql语句的oracle语法标签;
80.根据sql语句转换规则将oracle语法标签转换为mysql语法标签;
81.根据mysql语法标签构建mysql类型的sql语句,得到mysql数据库的sql语句。
82.在一个实施例中,处理器执行根据sql语句转换规则将oracle语法标签转换为mysql语法标签时,具体执行以下操作:
83.判断oracle语法标签是否可以转换为mysql语法标签;
84.若是,则根据sql语句转换规则将oracle语法标签转换为mysql语法标签;
85.若否,则对oracle语法标签进行标记,并将标记后的oracle语法标签发送至客户端进行展示。
86.在一个实施例中,处理器执行根据mysql数据库的sql语句将oracle数据库切换为mysql数据库时,具体执行以下操作:
87.对mysql数据库的sql语句进行语法仿真验证,得到验证结果;
88.在验证结果中不存在错误信息时,根据mysql数据库的sql语句构建mysql语法文件;
89.将待处理系统的代码程序包中的oracle语法文件切换为mysql语法文件,得到目标代码程序包;
90.将目标代码程序包连接至mysql数据库,以完成将oracle数据库切换为mysql数据库。
91.在一个实施例中,处理器在执行对mysql数据库的sql语句进行语法仿真验证,得到验证结果时,具体执行以下操作:
92.将mysql数据库的sql语句输入语法验证器中进行解析转换,输出转换结果;
93.获取mysql数据库的sql语句的目标入参对象;
94.根据目标入参对象动态构建json格式数据;
95.将json格式数据映射关联到mysql数据库的sql语句上,得到目标sql语句;
96.执行目标sql语句进行结果仿真,得到执行结果;
97.将转换结果和执行结果确定为验证结果。
98.在一个实施例中,处理器执行获取待处理系统的oracle语法文件时,具体执行以下操作:
99.获取待处理系统的代码程序包;
100.在代码程序包中遍历查找所有带有oracle语法的xml格式文件;
101.将xml格式文件确定为oracle语法文件。
102.在一个实施例中,处理器按照以下步骤生成sql语句转换规则时,具体执行以下操作:
103.获取oracle数据库提供的第一语法关键字集合;
104.获取mysql数据库提供的第二语法关键字集合;
105.根据第一语法关键字集合、第二语法关键字集合、oracle数据库的语法规则以及mysql数据库的语法规则构建sql语句转换规则。
106.在本技术实施例中,系统数据库切换系统首先在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,然后加载针对mysql数据库设置的sql语句转换规则,其次根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,最后根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。由于本技术通过获取当前系统的oracle语法文件,并配合针对mysql数据库设置的sql语句转换规则可以将oracle数据库对应的sql语句转换为mysql数据库的sql语句,从而实现了sql语句的自动化快速修改,提升了系统数据库的切换效率。
107.在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
108.在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件;
109.加载针对mysql数据库设置的sql语句转换规则;
110.根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对
应的sql语句转换为mysql数据库的sql语句;
111.根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。
112.在一个实施例中,处理器执行根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句时,具体执行以下操作:
113.解析oracle语法文件,并根据解析后的oracle语法文件生成多个树形组织节点;
114.在待处理系统的oracle数据库对应的代码数据包中逐一遍历每个树形组织节点对应的sql语句,得到多条oracle类型的sql语句;
115.识别每条oracle类型的sql语句的oracle语法标签;
116.根据sql语句转换规则将oracle语法标签转换为mysql语法标签;
117.根据mysql语法标签构建mysql类型的sql语句,得到mysql数据库的sql语句。
118.在一个实施例中,处理器执行根据sql语句转换规则将oracle语法标签转换为mysql语法标签时,具体执行以下操作:
119.判断oracle语法标签是否可以转换为mysql语法标签;
120.若是,则根据sql语句转换规则将oracle语法标签转换为mysql语法标签;
121.若否,则对oracle语法标签进行标记,并将标记后的oracle语法标签发送至客户端进行展示。
122.在一个实施例中,处理器执行根据mysql数据库的sql语句将oracle数据库切换为mysql数据库时,具体执行以下操作:
123.对mysql数据库的sql语句进行语法仿真验证,得到验证结果;
124.在验证结果中不存在错误信息时,根据mysql数据库的sql语句构建mysql语法文件;
125.将待处理系统的代码程序包中的oracle语法文件切换为mysql语法文件,得到目标代码程序包;
126.将目标代码程序包连接至mysql数据库,以完成将oracle数据库切换为mysql数据库。
127.在一个实施例中,处理器在执行对mysql数据库的sql语句进行语法仿真验证,得到验证结果时,具体执行以下操作:
128.将mysql数据库的sql语句输入语法验证器中进行解析转换,输出转换结果;
129.获取mysql数据库的sql语句的目标入参对象;
130.根据目标入参对象动态构建json格式数据;
131.将json格式数据映射关联到mysql数据库的sql语句上,得到目标sql语句;
132.执行目标sql语句进行结果仿真,得到执行结果;
133.将转换结果和执行结果确定为验证结果。
134.在一个实施例中,处理器执行获取待处理系统的oracle语法文件时,具体执行以下操作:
135.获取待处理系统的代码程序包;
136.在代码程序包中遍历查找所有带有oracle语法的xml格式文件;
137.将xml格式文件确定为oracle语法文件。
138.在一个实施例中,处理器按照以下步骤生成sql语句转换规则时,具体执行以下操作:
139.获取oracle数据库提供的第一语法关键字集合;
140.获取mysql数据库提供的第二语法关键字集合;
141.根据第一语法关键字集合、第二语法关键字集合、oracle数据库的语法规则以及mysql数据库的语法规则构建sql语句转换规则。
142.在本技术实施例中,系统数据库切换系统首先在待处理系统的当前数据库为oracle数据库时,获取待处理系统的oracle语法文件,然后加载针对mysql数据库设置的sql语句转换规则,其次根据oracle语法文件,并结合sql语句转换规则将待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,最后根据mysql数据库的sql语句将oracle数据库切换为mysql数据库。由于本技术通过获取当前系统的oracle语法文件,并配合针对mysql数据库设置的sql语句转换规则可以将oracle数据库对应的sql语句转换为mysql数据库的sql语句,从而实现了sql语句的自动化快速修改,提升了系统数据库的切换效率。
143.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性介质,或随机存储记忆体(random access memory,ram)等。
144.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
145.以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

技术特征:
1.一种系统数据库切换方法,其特征在于,所述方法包括:在待处理系统的当前数据库为oracle数据库时,获取所述待处理系统的oracle语法文件;加载针对mysql数据库设置的sql语句转换规则;根据所述oracle语法文件,并结合所述sql语句转换规则将所述待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;根据所述mysql数据库的sql语句将所述oracle数据库切换为mysql数据库。2.根据权利要求1所述的方法,其特征在于,所述根据所述oracle语法文件,并结合所述sql语句转换规则将所述待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句,包括:解析所述oracle语法文件,并根据解析后的oracle语法文件生成多个树形组织节点;在所述待处理系统的oracle数据库对应的代码数据包中逐一遍历每个树形组织节点对应的sql语句,得到多条oracle类型的sql语句;识别每条oracle类型的sql语句的oracle语法标签;根据所述sql语句转换规则将所述oracle语法标签转换为mysql语法标签;根据所述mysql语法标签构建mysql类型的sql语句,得到mysql数据库的sql语句。3.根据权利要求2所述的方法,其特征在于,所述根据所述sql语句转换规则将所述oracle语法标签转换为mysql语法标签,包括:判断所述oracle语法标签是否可以转换为mysql语法标签;若是,则根据所述sql语句转换规则将所述oracle语法标签转换为mysql语法标签;若否,则对所述oracle语法标签进行标记,并将标记后的oracle语法标签发送至客户端进行展示。4.根据权利要求1所述的方法,其特征在于,所述根据所述mysql数据库的sql语句将所述oracle数据库切换为mysql数据库,包括:对所述mysql数据库的sql语句进行语法仿真验证,得到验证结果;在所述验证结果中不存在错误信息时,根据所述mysql数据库的sql语句构建mysql语法文件;将所述待处理系统的代码程序包中的oracle语法文件切换为所述mysql语法文件,得到目标代码程序包;将所述目标代码程序包连接至mysql数据库,以完成将所述oracle数据库切换为mysql数据库。5.根据权利要求4所述的方法,其特征在于,所述对所述mysql数据库的sql语句进行语法仿真验证,得到验证结果,包括:将所述mysql数据库的sql语句输入语法验证器中进行解析转换,输出转换结果;获取所述mysql数据库的sql语句的目标入参对象;根据所述目标入参对象动态构建json格式数据;将所述json格式数据映射关联到所述mysql数据库的sql语句上,得到目标sql语句;执行所述目标sql语句进行结果仿真,得到执行结果;将所述转换结果和所述执行结果确定为验证结果。
6.根据权利要求1所述的方法,其特征在于,所述获取所述待处理系统的oracle语法文件,包括:获取待处理系统的代码程序包;在所述代码程序包中遍历查找所有带有oracle语法的xml格式文件;将所述xml格式文件确定为oracle语法文件。7.根据权利要求1所述的方法,其特征在于,所述按照以下步骤生成sql语句转换规则,包括:获取oracle数据库提供的第一语法关键字集合;获取mysql数据库提供的第二语法关键字集合;根据所述第一语法关键字集合、所述第二语法关键字集合、所述oracle数据库的语法规则以及所述mysql数据库的语法规则构建sql语句转换规则。8.一种系统数据库切换系统,其特征在于,所述系统包括:oracle语法文件获取模块,用于在待处理系统的当前数据库为oracle数据库时,获取所述待处理系统的oracle语法文件;sql语句转换规则加载模块,用于加载针对mysql数据库设置的sql语句转换规则;sql语句转换模块,用于根据所述oracle语法文件,并结合所述sql语句转换规则将所述待处理系统的oracle数据库对应的sql语句转换为mysql数据库的sql语句;数据库切换模块,用于根据所述mysql数据库的sql语句将所述oracle数据库切换为mysql数据库。9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述系统数据库切换方法的步骤。10.一种存储有计算机可读指令的介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述系统数据库切换的步骤。

技术总结
本发明公开了一种系统数据库切换方法、系统、计算机设备及介质,方法包括:在待处理系统的当前数据库为Oracle数据库时,获取待处理系统的Oracle语法文件;加载针对Mysql数据库设置的SQL语句转换规则;根据Oracle语法文件,并结合SQL语句转换规则将待处理系统的Oracle数据库对应的SQL语句转换为Mysql数据库的SQL语句;根据Mysql数据库的SQL语句将Oracle数据库切换为Mysql数据库。由于本申请通过获取当前系统的Oracle语法文件,并配合针对Mysql数据库设置的SQL语句转换规则可以将Oracle数据库对应的SQL语句转换为Mysql数据库的SQL语句,从而实现了SQL语句的自动化快速修改,提升了系统数据库的切换效率。系统数据库的切换效率。系统数据库的切换效率。


技术研发人员:何辉
受保护的技术使用者:平安付科技服务有限公司
技术研发日:2022.07.21
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7164.html

最新回复(0)