database compatibility assessment

ORACLE 视图 WITH CHECK OPTION(含命名 CONSTRAINT) 迁移 oceanbase 4.3 oracle 模式 怎么改

迁衡基于规则 ora.ddl.view_check_option 分析 ORACLE 视图 WITH CHECK OPTION(含命名 CONSTRAINT) 到 oceanbase 4.3 oracle 模式 的兼容性、改写路径与验证建议。

兼容性判定

真机验证:oceanbase 4.2.5.7 · 4.2.5.7+ 支持 WITH CHECK OPTION(4.3 满足);join 视图上不支持;不支持 CONSTRAINT 命名子句 |实测2026-07-09(v4.2.5.7,172.16.0.146): WITH CHECK OPTION 可建;CONSTRAINT 命名子句 实测被拒(ORA-00900),与 note 一致
支持度partial
严重度minor
置信度high
依据规则ora.ddl.view_check_option

怎么改

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

判定说明

4.2.5.7+ 支持 WITH CHECK OPTION(4.3 满足);join 视图上不支持;不支持 CONSTRAINT 命名子句 |实测2026-07-09(v4.2.5.7,172.16.0.146): WITH CHECK OPTION 可建;CONSTRAINT 命名子句 实测被拒(ORA-00900),与 note 一致

库侧 / 应用侧路径

库侧改造

需人工确认改造边界

应用侧改造

需人工确认改造边界

推荐路线:case_by_case。验证建议:源工具三段式处理:目标 OB<4.2.5.7 整体移除;join 视图上的 CHECK OPTION 一律移除 (verified unsupported);"WITH CHECK OPTION CONSTRAINT " 保留 CHECK OPTION、 仅去掉命名 CONSTRAINT 子句。移除即放弃写入校验语义,需在报告中显式标注

规则样例

CREATE VIEW v_hi AS SELECT * FROM emp WHERE sal > 1000 WITH CHECK OPTION
CREATE VIEW v_hi AS SELECT * FROM emp WHERE sal > 1000 WITH CHECK OPTION CONSTRAINT v_hi_chk
CREATE VIEW v_hi AS SELECT * FROM emp WHERE sal > 1000

参考来源