兼容性判定
真机验证:oceanbase 4.2.5.7 · SIGNAL/RESIGNAL 支持情况待真库验证(PL 子集) |实测2026-07-09(v4.2.5.7,172.16.0.146): SIGNAL/RESIGNAL 存储程序编译成功支持度partial
严重度major
置信度high
依据规则my.proc.signal
怎么改
需按命中位置逐条评估改写
判定说明
SIGNAL/RESIGNAL 支持情况待真库验证(PL 子集) |实测2026-07-09(v4.2.5.7,172.16.0.146): SIGNAL/RESIGNAL 存储程序编译成功
库侧 / 应用侧路径
库侧改造
可行:SIGNAL/RESIGNAL 改目标端 RAISE/异常体系,自定义 SQLSTATE 映射表约定
应用侧改造
可行:应用侧按错误码分支的逻辑(getSQLState)同步改
推荐路线:db_side。验证建议:每个自定义错误码的应用侧捕获分支联调;45000 类通用码映射表评审
规则样例
CREATE PROCEDURE chk(p INT) BEGIN IF p < 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'neg'; END IF; END
CREATE PROCEDURE p1() BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION RESIGNAL; SELECT 1; END
SELECT 1 FROM t WHERE amt < 0