Stories

Detail Return Return

SQLShift 重磅更新:支持 SQL Server 存儲過程轉換至 GaussDB! - Stories Detail

SQLShift 作為一款多元異構數據庫的 SQL 方言轉換工具,在過去兩個月,陸續支持了 Oracle 存儲過程 ➝ OceanBase/PostgreSQL 的語法轉換,本期讓我們一起看看又有哪些新能力吧!

https://www.bilibili.com/video/BV1253jzTE8t/?aid=114792748552...

新特性速覽

✔️ SQL Server 存儲過程 ➝ GaussDB 函數重構:支持 T-SQL → PL/pgSQL 的智能轉換,結構/語義全面適配。

✔️ 批量轉換能力:支持一次性轉換幾十至上百個存儲過程,自動識別語法風險!

一、SQL Server 存儲過程 ➝ GaussDB 的智能轉換

SQLShift 本次升級最大的亮點,在於對 SQL Server 與 GaussDB 之間複雜語義差異的精準映射與語法重構。

🔍 多維度評估語法兼容性

對 SQL Server 存儲過程引用的結構定義、系統視圖、數據類型等語法元素評估其在 GaussDB 的兼容性,覆蓋300+語法點,實現異構數據庫之間的語法精準映射,部分語法類型效果如下:

語法元素類別 SQL Server 語法示例 轉換為 GaussDB 語法
結構定義 CREATE PROCEDURE... 重寫為 CREATE FUNCTION ... RETURNS type LANGUAGE plpgsql,以消除 GaussDB 對存儲過程的使用限制。
系統函數 @@spid 重寫為 pg_backend_pid()
系統視圖&表 sys.columns 重寫為 information_schema.columns
臨時對象 SELECT ... INTO #temp_table 重寫為 CREATE TEMP TABLE ... AS
數據類型 DATETIME 重寫為 TIMESTAMP(3)
關鍵字 CREATE TABLE DemoTable(CONTENT BIT, DBTIMEZONE VARCHAR(50)... 自動重命名 GaussDB 保留字(如 DBTIMEZONE),並針對非保留字(如 content)提供使用場景建議。

更多語法等你來體驗...

🔍 智能轉換非標語法

SQLShift 針對 SQL Server 特有的非標準寫法、平台行為差異進行語義級修復,真正做到“能識別、更能重構”,節省大量人工遷移時間,部分典型問題及修復方案:

  1. 表別名提前引用

    • SQL Server 語法:UPDATE a SET col=1 FROM tableA a WHERE a.id=b.id
    • GaussDB 語法:UPDATE tableA a SET col=1 FROM tableB b WHERE a.id=b.id

    依據:GaussDB 要求 UPDATE 子句明確主表別名作用域

  2. 無終止符語句

    • SQL Server 語法:SELECT * FROM table
    • GaussDB 語法:SELECT * FROM table;(自動補全;)

更多 SQL Server 特有語法,等你來探索...

🔍 精於 GaussDB 特性映射與語義重構

通用模型通常基於 PostgreSQL 語法泛化訓練,無法有效識別 GaussDB 與 PG 的版本差異問題,導致高危誤轉換。例如 GaussDB V2.0-3.x 明確不支持 uuid_generate_v4() 等 PG 函數,且僅支持 ON COMMIT {PRESERVE ROWS | DELETE ROWS},但通用模型因缺乏版本知識庫,仍套用 PG 語法規則。

SQLShift 深度感知 GaussDB 版本差異,深度集成華為官方語法規則,結合語義級識別與行為重構,動態解析目標集羣的精確版本號,確保每一次轉換都真正“可用、可控、可維護”:

  • 業務邏輯重構NEWID() ➝ 業務唯一標識符重構(如Java UUID.randomUUID().toString()),規避不存在等價函數的風險。
  • 臨時錶行為重構ON COMMIT DROP ➝ 顯式清理鏈(ON COMMIT DELETE ROWS + DROP),確保生命週期合規,避免臨時表堆積引發集羣OOM。

二、存儲過程批量轉換,效率翻倍

還在手動一個個存儲過程轉換?SQLShift 批量處理能力,輕鬆應對上百個存儲過程遷移:

  • ✅ 上傳腳本:支持 SQL 文件中包含多個存儲過程
  • ✅ 智能拆解:精準識別每個存儲過程邊界,自動分配轉換任務
  • ✅ 進度追蹤:轉換狀態實時可視,異常智能提示
  • ✅ 語法兼容性評估:識別語法的兼容性,並自動重構
  • ✅ 統一轉換導出:導出目標數據庫兼容的存儲過程文件

版本預告

  • 📌 超 400 行復雜存儲過程支持
  • 📌 SQL Server ➝ OceanBase 存儲過程轉換

苦於存儲過程轉換的你,還等什麼?快來體驗吧!

立即體驗 SQLShift 智能化遷移帶來的飛躍效率!限時專享額度兑換方式

🧩 SQL 方言再多,轉換也能一步到位,SQLShift 為你搞定!

user avatar ciel717 Avatar shuyixiaobututou Avatar youyudeshangpu_cny857 Avatar wy123 Avatar dbkangaroo Avatar yuzhoudedadong Avatar
Favorites 6 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.