database compatibility assessment

ORACLE 触发器 :NEW/:OLD 冒号引用语法 迁移 opengauss 6.0 A 模式 怎么改

迁衡基于规则 ora.plsql.trigger_new_old 分析 ORACLE 触发器 :NEW/:OLD 冒号引用语法 到 opengauss 6.0 A 模式 的兼容性、改写路径与验证建议。

兼容性判定

支持度partial
严重度major
置信度high
依据规则ora.plsql.trigger_new_old

怎么改

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

判定说明

A 兼容触发器语法面待真库验证;兜底改造路径为 PG 风格触发器函数 + NEW./OLD.(无冒号)

库侧 / 应用侧路径

库侧改造

需人工确认改造边界

应用侧改造

需人工确认改造边界

推荐路线:case_by_case。验证建议:PG 系触发器函数内为 NEW./OLD.(无冒号)且触发器体要拆成独立函数;触发器整体改造时用"插入→触发→断言审计行"用例回归,REFERENCING 重命名形态纳入触发器族检测

规则样例

INSERT INTO serv_audit(serv_id, old_status, new_status) VALUES (:OLD.SERV_ID, :OLD.STATUS, :NEW.STATUS)
UPDATE acct_balance SET balance = :new.BALANCE WHERE acct_id = :new.ACCT_ID
CREATE OR REPLACE TRIGGER trg BEFORE UPDATE ON t REFERENCING OLD AS o NEW AS n FOR EACH ROW BEGIN NULL; END;