System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及計算機軟件,尤其涉及一種sql命令語句的轉化方法、裝置、電子設備及存儲介質。
技術介紹
1、目前,mariadb數據庫的sql命令語句不能直接應用于其它國產數據庫,并且不能反向轉化于其他國產數據庫,從而不能橫向拓展而滿足不同數據庫模型的需求。
2、相關技術中sql命令語句的轉換方法,通常各個數據庫的sql命令語句、序列支持及字段屬性等無法互相兼容支持,需用戶手動標記比對轉化處理,導致兼容性較差,項目開發人員投入比例大,開發、測試和人員的維護成本高且開發周期長。
3、現有技術中,可以根據mariadb數據庫的sql命令語句轉換得到其他數據庫的sql命令語句,屬于建表sql,在使用過程中需要根據數據庫的更新采用人工進行維護和對比,需要大量的人力,效率低下,容易出錯。
技術實現思路
1、有鑒于此,本公開實施例提供了一種sql命令語句的轉化方法,能夠基于兩個版本的mariadb數據庫的配置差異進行升級,得到多種不同類型的目標轉化數據庫的sql命令語句,無需大量的人力進行維護。
2、第一方面,本公開實施例提供了一種sql命令語句的轉化方法,采用如下技術方案:
3、一種sql命令語句的轉化方法,包括:
4、獲取兩個版本的mariadb數據庫的項目配置文件中的實例配置信息;
5、獲取兩個版本mariadb數據庫中與所述實例配置信息相對應的源數據;
6、對比兩個版本的源數據,獲取兩個版本的源數據的配置差異
7、基于至少一個目標轉化數據庫的解析器解析所述兩個版本的源數據的配置差異,得到所述至少一個目標轉化數據庫的sql命令語句。
8、作為可選地實施方式,所述對比兩個版本的源數據,獲取兩個版本的源數據的配置差異包括:
9、抽象工廠分發兩個版本的源數據至對比處理器;
10、對比處理器根據算法獲取兩個版本的源數據的配置差異。
11、作為可選地實施方式,基于至少一個目標轉化數據庫的解析器解析所述兩個版本的源數據的配置差異,得到所述至少一個目標轉化數據庫的sql命令語句包括:
12、基于所述兩個版本的源數據的配置差異構建至少一個目標轉化數據庫的目標配置信息;
13、基于目標配置信息,利用抽象工廠生成至少一個目標轉化數據庫的sql命令語句。
14、作為可選地實施方式,基于所述兩個版本的源數據的配置差異構建至少一個目標轉化數據庫的目標配置信息包括:
15、基于所述兩個版本的源數據的配置差異構建至少一個目標轉化數據庫的至少以下一種目標配置信息:表結構基本信息、字段屬性、長度信息、索引信息、聯合索引信息、數據庫的內置數據、sequence序列,并設置所述sequence序列的預設初始值。
16、其中,所述表結構基本信息至少包含drop刪除命令、create創建命令的基礎模型框架。
17、作為可選地實施方式,基于目標配置信息,利用抽象工廠生成至少一個目標轉化數據庫的sql命令語句包括:
18、基于所述目標配置信息,構建所述至少一個目標轉化數據庫的源數據模型;
19、利用所述抽象工廠將所述源數據模型中的模型數據分發到調度器,并生成分發事件;
20、將所述分發事件傳輸到所述至少一個目標轉化數據庫;
21、利用所述分發事件中的模型數據生成所述至少一個目標轉化數據庫的sql命令語句。
22、作為可選地實施方式,所述至少一個目標轉化數據庫包括達夢數據庫,利用所述分發事件中的模型數據生成所述至少一個目標轉化數據庫的sql命令語句,包括:
23、當所述達夢數據庫的所述sequence序列的轉化方式為開啟序列時,構建序列模型的sql語句;
24、基于所述序列模型的sql語句,利用所述模型數據生成所述達夢數據庫的sql命令語句;或者,
25、當所述達夢數據庫的所述sequence序列的轉化方式為未開啟序列時,構建非序列模型的sql語句;
26、基于所述非序列模型的sql語句,利用所述模型數據生成所述達夢數據庫的sql命令語句。
27、作為可選地實施方式,所述方法還包括:
28、組裝各個模型數據對應的源數據模型;
29、基于所述源數據模型,生成各個所述目標轉化數據庫的sql命令文件。
30、第二方面,本公開實施例還提供了一種sql命令語句的轉化裝置,采用如下技術方案:
31、一種sql命令語句的轉化裝置,包括:
32、配置信息獲取單元,獲取兩個版本的mariadb數據庫的項目配置文件中的實例配置信息;
33、源數據信息獲取單元,獲取兩個版本mariadb數據庫中與所述實例配置信息相對應的源數據;
34、對比單元,對比兩個版本的源數據,獲取兩個版本的源數據的配置差異;
35、sql命令語句轉化單元,基于至少一個目標轉化數據庫的解析器解析所述兩個版本的源數據的配置差異,得到所述至少一個目標轉化數據庫的sql命令語句。
36、第三方面,本公開實施例還提供了一種電子設備,采用如下技術方案:
37、所述電子設備包括:
38、至少一個處理器;以及,
39、與所述至少一個處理器通信連接的存儲器;其中,
40、所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行以上任一所述的sql命令語句的轉化方法。
41、第四方面,本公開實施例還提供了一種計算機可讀存儲介質,該計算機可讀存儲介質存儲計算機指令,該計算機指令用于使計算機執行以上任一所述的sql命令語句的轉化方法。
42、本公開實施例提供的一種sql命令語句的轉化方法,通過兩個版本mariadb數據庫的配置文件及源數據,得到兩個版本的配置差異(即兩個版本源數據的配置信息的不同),針對配置差異進行構建,以實現對sql命令語句文件的升級。
43、上述說明僅是本公開技術方案的概述,為了能更清楚了解本公開的技術手段,而可依照說明書的內容予以實施,并且為讓本公開的上述和其他目的、特征和優點能夠更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。
本文檔來自技高網...【技術保護點】
1.一種SQL命令語句的轉化方法,其特征在于,包括:
2.根據權利要求1所述的SQL命令語句的轉化方法,其特征在于,所述對比兩個版本的源數據,獲取兩個版本的源數據的配置差異包括:
3.根據權利要求2所述的SQL命令語句的轉化方法,其特征在于,基于至少一個目標轉化數據庫的解析器解析所述兩個版本的源數據的配置差異,得到所述至少一個目標轉化數據庫的SQL命令語句包括:
4.根據權利要求3所述的SQL命令語句的轉化方法,其特征在于,基于所述兩個版本的源數據的配置差異構建至少一個目標轉化數據庫的目標配置信息包括:
5.根據權利要求4所述的SQL命令語句的轉化方法,其特征在于,基于目標配置信息,利用抽象工廠生成至少一個目標轉化數據庫的SQL命令語句包括:
6.根據權利要求5所述的SQL命令語句的轉化方法,其特征在于,所述至少一個目標轉化數據庫包括達夢數據庫,利用所述分發事件中的模型數據生成所述至少一個目標轉化數據庫的SQL命令語句,包括:
7.根據權利要求5所述的SQL命令語句的轉化方法,其特征在于,所述方法還包括:
...【技術特征摘要】
1.一種sql命令語句的轉化方法,其特征在于,包括:
2.根據權利要求1所述的sql命令語句的轉化方法,其特征在于,所述對比兩個版本的源數據,獲取兩個版本的源數據的配置差異包括:
3.根據權利要求2所述的sql命令語句的轉化方法,其特征在于,基于至少一個目標轉化數據庫的解析器解析所述兩個版本的源數據的配置差異,得到所述至少一個目標轉化數據庫的sql命令語句包括:
4.根據權利要求3所述的sql命令語句的轉化方法,其特征在于,基于所述兩個版本的源數據的配置差異構建至少一個目標轉化數據庫的目標配置信息包括:
5.根據權利要求4所述的sql命令語句的轉化方法,其特征在于,基于目標配置信息,利用抽...
【專利技術屬性】
技術研發人員:林皓,黃晶晶,李嘉斌,
申請(專利權)人:北京北信源軟件股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。