CN113626407A - 一种语法转换迁移方法 - Google Patents
一种语法转换迁移方法 Download PDFInfo
- Publication number
- CN113626407A CN113626407A CN202110868303.5A CN202110868303A CN113626407A CN 113626407 A CN113626407 A CN 113626407A CN 202110868303 A CN202110868303 A CN 202110868303A CN 113626407 A CN113626407 A CN 113626407A
- Authority
- CN
- China
- Prior art keywords
- file
- database
- sql
- source
- grammar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机编码数据技术领域,具体提供了一种语法转换迁移方法,具有以下步骤:S1、输入源文件.sql;S2、输入源数据库和目标数据库;S3、输出转换完成的文件out.sql;S4、附加功能。与现有技术相比,本发明源数据库更丰富,新增国产数据库配合企业数据库,进行数据迁移和语法转换,应用场景更多,用途更广,适配更完善,具有良好的推广价值。
Description
技术领域
本发明涉及计算机编码数据技术领域,具体提供一种语法转换迁移方法。
背景技术
常用的C/C++语言,该编程语言功能丰富、表达力强、使用灵活方便、应用面广、目标程序高、可植入性好,既有高级语言的特点,又有低级语言的许多特点,适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。
Oracle:以分布式数据库为核心的一组软件产品,ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
MySQL:MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
分布式数据库系统通过网络,将位于不同地点的许多计算机互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
如果我们想将其他数据库的数据迁移到国产分布式数据库里,就必须先进行语法的转换,但是各个数据库存在一定的语法差异,语法上并不完全兼容,所以我们就需要进行相应的转换。所以我们就需要一种方法,可以将主流数据库的语法转换为适配国产分布式数据库的语法。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的语法转换迁移方法。
本发明解决其技术问题所采用的技术方案是:
一种语法转换迁移方法,具有以下步骤:
S1、输入源文件.sql;
S2、输入源数据库和目标数据库;
S3、输出转换完成的文件out.sql;
S4、附加功能。
进一步的,在步骤S1中,进一步包括:
S101、源文件.sql的内容为想要转化的对象或者是sql语句,必须保证数据库语法正确。
作为优选,在步骤S101中,需指出源数据库的类型和数据文件。
进一步的,在步骤S2中,还包括:
S102、将每一条sql语句进行单独的转换,各个sql语句之间没有相互关系,都是独立的,并且用指针Token进行遍历,对于注释的语句,不会返回Token。
进一步的,在步骤S2中,进一步的包括:
S201、输入源数据库和目标数据库,根据不同数据库的特征进行相应的转化。
进一步的,在步骤S2中,还包括:
S202、指针会一直遍历输入的源文件,直到这个文件的最末尾。
进一步的,在步骤S3中,进一步包括:
S301、通过CreateOutputString,将生成的sql语句以字符串的形式产出。
进一步的,在步骤S3中,还包括:
S302、将生成的字符串write到文件中,并且生成一份.sql文件,文件默认的名称为_out.sql,也可以自己指定输出文件的名称。
进一步的,在步骤S4中,通过指定-log打印日志。
本发明的一种语法转换迁移方法和现有技术相比,具有以下突出的有益效果:
本发明具有适应性和多样性,源数据库更丰富,新增国产数据库配合企业数据库,进行数据迁移和语法转换,应用场景更多,用途更广,适配更完善。自动化程度创意,根据不同数据库的语法规则和特性,有其特定的语法树及映射方案,完全采用程序自动识别,依照语法自动匹配转换。时效性和准确性,都是匹配的各个数据库的最新版本的语法,保证了该工具的准确和时效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种语法转换迁移方法的流程示意图;
附图2是一种语法转换迁移方法中语法转换主要映射函数;
附图3是一种语法转换迁移方法Token语法树示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1-3所示,本实施例中的一种语法转换迁移方法,具有以下步骤:
S1、输入源文件.sql
进一步包括:
S101、源文件.sql的内容为想要转化的对象或者是sql语句,可以是MySQL的,也可以是Oracle的,亦或是其他的数据库,但必须保证语法是正确的,因为我们严格按照正确的Oracle,MySQL等的语句进行转化。错误的语句我们无法正确的识别,转化出来的语句的正确性也无法得到保证。需指出源数据库的类型和数据文件。
S102、将每一条sql语句进行单独的转换,各个sql语句之间没有相互关系,都是独立的,并且用指针Token进行遍历,对于注释的语句,我们并不会返回Token。Token的结构体如图3所示。
S2、输入源数据库和目标数据库
进一步包括:
S201、输入源数据库和目标数据库,根据才能根据不同数据库的特征进行相应的转化,使用的模块如图1所示。
S202、指针会一直遍历输入的源文件,直到这个文件的最末尾,在遍历的过程中,我们会用到各种各样的函数,这些函数如图2所示。
S3、输出转换完成的文件out.sql
进一步包括:
S301、通过CreateOutputString,将生成的sql语句以字符串的形式产出。
S302、将生成的字符串write到文件中,并且生成一份.sql文件,文件默认的名称为_out.sql,也可以自己指定输出文件的名称。
S4、附加的功能:
可以通过指定-log打印日志。
现在通过二进制的形式保存,通过命令行的方式进行转换,以下为示例的语句./sqlparse-s=oracle-t=znbase-in=t2.sql–out=t3.sql–log=log.sql
-s:表示的是源数据库,该命令为想转化Oracle数据库的sql语句。必须保证该语句是正确的Oracle里的sql语句,因为我们是以Oracle的标准进行转化。
-t:表示的是目标数据库,该命令为转化为ZNBase数据库的sql语句。
-in;表示输入文件,也就是Oracle对应的sql文件。里面包含我们想要转化的sql语句。
--out:表示输出文件,也就是ZNBase对应的sql文件。该参数可以不写,如果不写的话,就会自动生成_out.sql文件。
–log:会把打印的日志放在这个文件中。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种语法转换迁移方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (9)
1.一种语法转换迁移方法,其特征在于,具有以下步骤:
S1、输入源文件.sql;
S2、输入源数据库和目标数据库;
S3、输出转换完成的文件out.sql;
S4、附加功能。
2.根据权利要求1所述的一种语法转换迁移方法,其特征在于,在步骤S1中,进一步包括:
S101、源文件.sql的内容为想要转化的对象或者是sql语句,必须保证数据库语法正确。
3.根据权利要求2所述的一种语法转换迁移方法,其特征在于,在步骤S101中,需指出源数据库的类型和数据文件。
4.根据权利要求3所述的一种语法转换迁移方法,其特征在于,在步骤S2中,还包括:
S102、将每一条sql语句进行单独的转换,各个sql语句之间没有相互关系,都是独立的,并且用指针Token进行遍历,对于注释的语句,不会返回Token。
5.根据权利要求1所述的一种语法转化迁移方法,其特征在于,在步骤S2中,进一步的包括:
S201、输入源数据库和目标数据库,根据不同数据库的特征进行相应的转化。
6.根据权利要求5所述的一种语法转化迁移方法,其特征在于,在步骤S2中,还包括:
S202、指针会一直遍历输入的源文件,直到这个文件的最末尾。
7.根据权利要求1所述的一种语法转化迁移方法,其特征在于,在步骤S3中,进一步包括:
S301、通过CreateOutputString,将生成的sql语句以字符串的形式产出。
8.根据权利要求7所述的一种语法转化迁移方法,其特征在于,在步骤S3中,还包括:
S302、将生成的字符串write到文件中,并且生成一份.sql文件,文件默认的名称为_out.sql,也可以自己指定输出文件的名称。
9.根据权利要求1所述的一种语法转化迁移方法,其特征在于,在步骤S4中,通过指定-log打印日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110868303.5A CN113626407A (zh) | 2021-07-30 | 2021-07-30 | 一种语法转换迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110868303.5A CN113626407A (zh) | 2021-07-30 | 2021-07-30 | 一种语法转换迁移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626407A true CN113626407A (zh) | 2021-11-09 |
Family
ID=78381791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110868303.5A Pending CN113626407A (zh) | 2021-07-30 | 2021-07-30 | 一种语法转换迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626407A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
US20140244680A1 (en) * | 2013-02-28 | 2014-08-28 | Lakshmy Chandran | Sql query parsing and translation |
US20190272296A1 (en) * | 2018-03-02 | 2019-09-05 | Thoughtspot, Inc. | Natural Language Question Answering Systems |
CN110688378A (zh) * | 2019-09-06 | 2020-01-14 | 中国平安财产保险股份有限公司 | 数据库存储过程的迁移方法及系统 |
CN112632038A (zh) * | 2020-12-31 | 2021-04-09 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、终端及存储介质 |
-
2021
- 2021-07-30 CN CN202110868303.5A patent/CN113626407A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
US20140244680A1 (en) * | 2013-02-28 | 2014-08-28 | Lakshmy Chandran | Sql query parsing and translation |
US20190272296A1 (en) * | 2018-03-02 | 2019-09-05 | Thoughtspot, Inc. | Natural Language Question Answering Systems |
CN110688378A (zh) * | 2019-09-06 | 2020-01-14 | 中国平安财产保险股份有限公司 | 数据库存储过程的迁移方法及系统 |
CN112632038A (zh) * | 2020-12-31 | 2021-04-09 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
饶淑珍: "Oracle 数据库的几种数据迁移方法探析", 《电脑知识与技术》, no. 2018 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1661593B (zh) | 一种计算机语言翻译方法及其翻译系统 | |
CN109614413B (zh) | 一种内存流式计算平台系统 | |
US20040158820A1 (en) | System for generating an application framework and components | |
CN105260403A (zh) | 通用跨数据库访问方法 | |
US10592220B2 (en) | Metadata-driven binding of converted source code to original source code | |
CN102955697B (zh) | 基于面向方面的构件库构建方法 | |
US20210209098A1 (en) | Converting database language statements between dialects | |
CN107545044A (zh) | 一种数据表建立方法、电子设备及存储介质 | |
CN110554875B (zh) | 代码转换方法及装置、电子设备、存储介质 | |
CN112579626A (zh) | 多源异构sql查询引擎的构建方法及装置 | |
CN112235311B (zh) | Ovsdb客户端代码自动生成方法、系统、设备及介质 | |
CN103049251A (zh) | 一种数据库持久层装置及数据库操作方法 | |
US20010052111A1 (en) | Management of application programming interface interoperability | |
CN103678396B (zh) | 一种基于数据模型的数据备份方法和装置 | |
US20200065330A1 (en) | XML Data Manipulation Method and Apparatus | |
CN113467785B (zh) | 一种拟态数据库的sql转译方法和系统 | |
US10416971B2 (en) | Method of creating the balanced parse tree having optimized height | |
CN111124422B (zh) | 一种基于抽象语法树的eos智能合约语言转换方法 | |
CN110879710B (zh) | 一种rpg程序自动转成java程序的方法 | |
CN112506488A (zh) | 一种基于sql创建语句生成编程语言类的方法 | |
CN113626407A (zh) | 一种语法转换迁移方法 | |
CN111581212A (zh) | 关系型数据库的数据存储方法、系统、服务器和存储介质 | |
CN116955393A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112860233B (zh) | 目标语法树的生成方法以及相关设备 | |
CN110399386A (zh) | 一种基于Presto的SQL UPDATE方法及控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221221 Address after: Room 305-22, Building 2, No. 1158 Zhangdong Road and No. 1059 Dangui Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200120 Applicant after: Shanghai Yunxi Technology Co.,Ltd. Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park Applicant before: Inspur cloud Information Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |