database compatibility assessment

MYSQL 存储过程(CREATE PROCEDURE) 迁移 oceanbase 4.3 mysql 模式 怎么改

迁衡基于规则 my.proc.stored_procedure 分析 MYSQL 存储过程(CREATE PROCEDURE) 到 oceanbase 4.3 mysql 模式 的兼容性、改写路径与验证建议。

兼容性判定

真机验证:oceanbase 4.2.5.7 · MySQL 模式存储过程支持子集 |实测2026-07-09(v4.2.5.7,172.16.0.146): DDL CREATE PROCEDURE 成功
支持度partial
严重度major
置信度high
依据规则my.proc.stored_procedure

怎么改

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

判定说明

MySQL 模式存储过程支持子集 |实测2026-07-09(v4.2.5.7,172.16.0.146): DDL CREATE PROCEDURE 成功

库侧 / 应用侧路径

库侧改造

可行:按目标过程语言逐个改写(MySQL 兼容目标编译验证;PG 系改 plpgsql 全面改写)

应用侧改造

可行:过程逻辑上移应用服务层

推荐路线:db_side。验证建议:逐过程编译通过 + 输入输出用例比对;游标/异常分支覆盖

规则样例

CREATE PROCEDURE sync_bill(IN p_day DATE) BEGIN UPDATE bill SET flag = 1 WHERE dt = p_day; END
CREATE DEFINER=admin@localhost PROCEDURE p1() BEGIN SELECT 1; END
CALL sync_bill(CURDATE())

参考来源