兼容性判定
公开资料依据 · 建议 PoC 复核支持度none
严重度major
置信度medium
依据规则ora.syntax.outer_join_plus
怎么改
按 marker 方向改 ANSI LEFT/RIGHT JOIN
判定说明
OceanBase MySQL 模式不继承 Oracle (+) 外连接;建议 PoC 复核 ON/WHERE 谓词边界。
库侧 / 应用侧路径
库侧改造
可行:视图/过程内 (+) 就地改 ANSI LEFT/RIGHT JOIN
应用侧改造
可行:应用 SQL 改 ANSI JOIN 并回归调用链
推荐路线:app_side。验证建议:(+) 出现在过滤条件上的语句必测(连接条件与 WHERE 过滤语义不同,直译改变结果集);覆盖 marker 左右侧、同表多谓词、OR/IN 与三表混合;各改写语句结果集比对并建议 PoC 复核计划
规则样例
SELECT a.x, b.y FROM a, b WHERE a.id = b.id(+)
SELECT * FROM emp e, dept d WHERE e.dept_id(+) = d.id AND e.flag(+) = 'Y'
SELECT a.x, b.y FROM a LEFT JOIN b ON a.id = b.id
参考来源
- https://github.com/oceanbase/oceanbase-doc/tree/2a5ae3a23a51729d065cec716508eb26cb064106
- https://en.oceanbase.com/docs/common-oceanbase-database-10000000001228532
- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Joins.html
- https://www.postgresql.org/docs/16/queries-table-expressions.html#QUERIES-JOIN
相关改造点
- ORACLE → oceanbase 4.2.5 mysql 模式 全部改造点
- oceanbase 4.2.5 mysql 模式 兼容性总览
- ORACLE 迁移国产库总览
- ORACLE CONNECT BY 层次查询 迁移 oceanbase 4.2.5 mysql 模式 怎么改
- ORACLE LEVEL 层次伪列 迁移 oceanbase 4.2.5 mysql 模式 怎么改
- ORACLE CONNECT_BY_ROOT 层次操作符 迁移 oceanbase 4.2.5 mysql 模式 怎么改
- ORACLE DECODE 函数 迁移 oceanbase 4.2.5 mysql 模式 怎么改
- ORACLE ORDER SIBLINGS BY 子句 迁移 oceanbase 4.2.5 mysql 模式 怎么改
- ORACLE Oracle SQL 治理检查:BUILTIN PRIOR BACKUP CHECK 迁移 oceanbase 4.2.5 mysql 模式 怎么改