[發明專利]語句塊執行計劃的生成方法、裝置、設備和存儲介質有效
| 申請號: | 202010634512.9 | 申請日: | 2020-07-02 |
| 公開(公告)號: | CN111813803B | 公開(公告)日: | 2023-07-21 |
| 發明(設計)人: | 望聲宜;孟正凌;韓朱忠 | 申請(專利權)人: | 上海達夢數據庫有限公司 |
| 主分類號: | G06F16/2453 | 分類號: | G06F16/2453;G06F16/2452 |
| 代理公司: | 北京品源專利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 201203 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 語句 執行 計劃 生成 方法 裝置 設備 存儲 介質 | ||
1.一種語句塊執行計劃的生成方法,其特征在于,包括:
獲取當前語句塊;
將所述當前語句塊中關聯有安全策略函數的第一語句改寫為第二語句作為目標語句塊,其中,所述第一語句為插入語句、更新語句、刪除語句或查詢語句,所述第二語句為動態執行語句;
基于所述第一語句改寫后得到的目標語句塊生成所述當前語句塊的目標執行計劃;
其中,所述將所述當前語句塊中關聯安全策略函數的第一語句改寫為第二語句,包括:
將所述當前語句塊的引用安全策略函數標識置為FALSE,并按照執行順序將所述當前語句塊中的第一條SQL語句確定為當前SQL語句;
解析所述當前SQL語句,并判斷所述當前SQL語句是否為第一語句,若是,則將所述當前語句塊的引用安全策略函數標識置為TURE,并繼續解析所述當前SQL語句,直至所述當前SQL語句解析完成;若否,則繼續解析所述當前SQL語句,直至所述當前SQL語句解析完成;
判斷所述當前語句塊的引用安全策略函數標識是否為TURE,若是,則將所述當前SQL語句改寫為動態執行語句,將所述當前語句塊的引用安全策略函數標識重置為FALSE,將所述當前語句塊中的下一條SQL語句確定為當前SQL語句,并返回執行解析所述當前SQL語句的操作,直至不存在下一條SQL語句為止;若否,則將所述當前語句塊中的下一條SQL語句確定為當前SQL語句,并返回執行解析所述當前SQL語句的操作,直至不存在下一條SQL語句為止;
其中,所述動態執行語句包括SQL語句、using子句和into子句,將所述當前語句塊中關聯安全策略函數的第一語句改寫為動態執行語句,包括:
當所述第一語句包含into子句時,將第一語句的into子句轉換為動態執行語句的into子句;當第一語句引用當前語句塊或上層可見語句塊中聲明的變量或參數時,將第一語句引用的所述變量或所述參數轉換為所述動態執行語句的執行參數,并添加到新生成動態執行語句的using子句中;
所述目標執行計劃包括第二語句的動態執行指令和當前尚未解析的動態SQL原始字符串。
2.根據權利要求1所述的方法,其特征在于,在所述基于所述第一語句改寫后得到的目標語句塊生成所述當前語句塊的目標執行計劃之后,還包括:
依據所述目標執行計劃執行所述當前語句塊。
3.根據權利要求1或2所述的方法,其特征在于,在所述基于所述第一語句改寫后得到的目標語句塊生成所述當前語句塊的目標執行計劃之后,還包括:
將所述當前語句塊與所述目標執行計劃對應存儲于承載有當前數據庫的計算機設備中。
4.根據權利要求3所述的方法,其特征在于,在所述將所述當前語句塊中關聯有安全策略函數的第一語句改寫為第二語句之前,還包括:
確定承載有所述當前數據庫的計算機設備中未存儲與所述當前語句塊相同的歷史語句塊。
5.根據權利要求4所述的方法,其特征在于,還包括:
如果承載有所述當前數據庫的計算機設備中存儲有與所述當前語句塊相同的歷史語句塊,則獲取所述歷史語句塊的執行計劃,作為所述當前語句塊的目標執行計劃。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海達夢數據庫有限公司,未經上海達夢數據庫有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010634512.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種智能制造柔性生產線的自動上料裝置
- 下一篇:一種復雜通風網絡火災模擬系統





