[發明專利]一種基于多數據庫類型的SQL執行方法和裝置在審
| 申請號: | 201510060708.0 | 申請日: | 2015-02-05 |
| 公開(公告)號: | CN104615713A | 公開(公告)日: | 2015-05-13 |
| 發明(設計)人: | 張強;任艷青 | 申請(專利權)人: | 浪潮通用軟件有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 李世喆 |
| 地址: | 250100 山東*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 多數 類型 sql 執行 方法 裝置 | ||
技術領域
本發明涉及計算機技術領域,特別涉及一種基于多數據庫類型的SQL執行方法和裝置。
背景技術
在信息化應用的軟件項目中,與數據庫交互是必不可少的內容,數據庫管理系統的類型多種多樣。客戶使用的時候一般是選擇這些數據庫系統中的一種,標準應用軟件產品一般都要支持多數據庫的應用,這就要求在軟件設計和開發的時候要考慮支持多數據庫應用的情況,但不同的數據庫系統其語法結構有所不同,從而造成開發人員在編碼的時候要進行大量的不同數據庫系統語法轉換的編寫。例如:假設要開發的軟件產品支持三種主流數據庫的話,一條SQL語句要按三種不同的語法進行執行,就要分別寫三條不同語法的SQL語句,此工作中包含大量的重復性工作,從而造在很大程序上影響的開發人員的編碼效率。
發明內容
本發明提供一種基于多數據庫類型的SQL執行方法和裝置,能夠提高編碼效率。
一種基于多數據庫類型的SQL執行方法,
創建全局函數或者方法對象,設置入口參數包括對應需要轉換的SQL語句的第一參數和對應目標數據庫類型的第二參數;以及設置輸出結果為轉換后的SQL語句;
在所述全局函數或所述全局方法內,封裝從前置通用數據庫語法的SQL語句到其他每一個目標數據庫類型語法的SQL語句的轉換代碼;
還包括:
調用所述全局函數或所述全局方法,
通過所述第一參數,向所述全局函數或所述全局方法輸入符合所述前置通用數據庫語法的當前SQL語句;
通過所述第二參數,向所述全局函數或所述全局方法輸入當前目標數據庫類型;
執行所述全局函數或所述全局方法,獲取所述全局函數或所述全局方法輸出的當前目標數據庫類型語法的SQL語句。
所述目標數據庫類型包括:Oracle,Sybase,MySql,DB2數據庫中的任意一個或多個。
所述第二參數包括多個值,通過三位字符串表示不同的目標數據庫類型;
所述通過所述第二參數,向所述全局函數或所述全局方法輸入當前目標數據庫類型包括:在第二參數的三位字符串中分別攜帶多個當前目標數據庫類型;
所述獲取當前目標數據庫類型語法的SQL語句包括:獲取所述全局函數或所述全局方法分別輸出的對應于多個當前目標數據庫類型語法的多個SQL語句。
所述前置通用數據庫語法為:SQLSERVER語法。
當目標數據庫類型包括ORACLE數據庫時;
所述封裝從前置通用數據庫語法的SQL語句到其他每一個目標數據庫類型語法的SQL語句的轉換代碼包括:用字符替換函數將SQLSERVER語法中判斷是否為空的函數名稱“ISNULL”替換為ORACLE數據庫語法中的“NVL”。
一種基于多數據庫類型的SQL執行裝置,包括:
封裝單元,用于封裝有全局函數或者方法對象,該全局函數或者方法對象中封裝有從前置通用數據庫語法的SQL語句到其他每一個目標數據庫類型語法的SQL語句的轉換代碼;該全局函數或者方法對象的入口參數包括對應需要轉換的SQL語句的第一參數和對應目標數據庫類型的第二參數;該全局函數或者方法對象的輸出結果為轉換后的SQL語句;
交互單元,用于通過對所述第一參數的賦值,獲取向所述全局函數或所述全局方法輸入的符合所述前置通用數據庫語法的當前SQL語句;通過對所述第二參數的賦值,獲取向所述全局函數或所述全局方法輸入的當前目標數據庫類型;
調用執行單元,用于調用封裝單元中的所述全局函數或所述全局方法,根據所述交互單元接收到的賦值,執行所述全局函數或所述全局方法,獲取所述全局函數或所述全局方法輸出的當前目標數據庫類型語法的SQL語句。
所述目標數據庫類型包括:Oracle,Sybase,MySql,DB2數據庫中的任意一個或多個。
所述封裝單元所封裝的全局函數或所述全局方法中,所述第二參數包括多個值,通過三位字符串表示不同的目標數據庫類型;
所述交互單元,用于從對所述第二參數的賦值中,得到該第二參數的三位字符串中分別攜帶的多個當前目標數據庫類型;
所述調用執行單元,用于根據所述交互單元得到的多個當前目標數據庫類型,獲取所述全局函數或所述全局方法分別輸出的對應于多個當前目標數據庫類型語法的多個SQL語句。
所述前置通用數據庫語法為:SQLSERVER語法。
當目標數據庫類型包括ORACLE數據庫時;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮通用軟件有限公司,未經浪潮通用軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201510060708.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于優先序列的分布式社交網絡信息采集方法及系統
- 下一篇:總線型運動控制器





