database compatibility assessment

ORACLE MERGE INTO 语句 迁移 oceanbase 4.3 mysql 模式 怎么改

迁衡基于规则 ora.syntax.merge_into 分析 ORACLE MERGE INTO 语句 到 oceanbase 4.3 mysql 模式 的兼容性、改写路径与验证建议。

兼容性判定

支持度undeclared
严重度major
置信度medium
依据规则ora.syntax.merge_into

怎么改

需按命中位置逐条评估改写

判定说明

能力矩阵未声明该特征,按不支持处理并降低置信度

库侧 / 应用侧路径

库侧改造

可行:对象内 MERGE 改目标端 MERGE/INSERT ON CONFLICT 等价形态

应用侧改造

可行:应用 SQL 改写(冲突键显式化、VALUES→EXCLUDED 引用)并回归

推荐路线:app_side。验证建议:同键多源行、并发 upsert 用例比对;多次匹配同一行的报错行为确认

规则样例

MERGE INTO tgt t USING src s ON (t.id = s.id) WHEN MATCHED THEN UPDATE SET t.v = s.v WHEN NOT MATCHED THEN INSERT (id, v) VALUES (s.id, s.v)
MERGE INTO bill b USING (SELECT 1 id FROM dual) x ON (b.id = x.id) WHEN MATCHED THEN UPDATE SET b.amt = 0
UPDATE tgt SET v = 1 WHERE id = 1

参考来源