database compatibility assessment

ORACLE EDITIONABLE / NONEDITIONABLE 关键字 迁移 oceanbase 4.3 oracle 模式 怎么改

迁衡基于规则 ora.ddl.editionable 分析 ORACLE EDITIONABLE / NONEDITIONABLE 关键字 到 oceanbase 4.3 oracle 模式 的兼容性、改写路径与验证建议。

兼容性判定

真机验证:oceanbase 4.2.5.7 · 无 edition 概念,EDITIONABLE/NONEDITIONABLE 关键字移除即可;若源库真用多 edition 发布则属流程改造 |实测2026-07-09(v4.2.5.7,172.16.0.146): EDITIONABLE/NONEDITIONABLE 实测被拒(ORA-00900)
支持度none
严重度minor
置信度high
依据规则ora.ddl.editionable

怎么改

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

判定说明

无 edition 概念,EDITIONABLE/NONEDITIONABLE 关键字移除即可;若源库真用多 edition 发布则属流程改造 |实测2026-07-09(v4.2.5.7,172.16.0.146): EDITIONABLE/NONEDITIONABLE 实测被拒(ORA-00900)

库侧 / 应用侧路径

库侧改造

需人工确认改造边界

应用侧改造

需人工确认改造边界

推荐路线:case_by_case。验证建议:DBMS_METADATA 导出的 VIEW/PLSQL/TRIGGER 头几乎必带;源工具全对象类型自动移除 (verified unsupported),无语义损失——除非源库真用了多 Edition 在线发布, 那属于发布流程改造。触发器头重写时注意别把 ON 关键字误当对象名

规则样例

CREATE OR REPLACE EDITIONABLE PACKAGE pkg_a AS PROCEDURE p; END;
CREATE OR REPLACE NONEDITIONABLE TRIGGER trg_a BEFORE INSERT ON t BEGIN NULL; END;
CREATE OR REPLACE PACKAGE pkg_a AS PROCEDURE p; END;