兼容性判定
公开资料依据 · 建议 PoC 复核支持度none
严重度critical
置信度medium
依据规则ora.syntax.model_clause
怎么改
需按命中位置逐条评估改写
判定说明
MODEL 子句需改窗口函数/递归 CTE 或应用层计算
库侧 / 应用侧路径
库侧改造
可行:拆为窗口函数/聚合临时表/递归 CTE,保留计算顺序
应用侧改造
可行:报表矩阵计算上移应用或 BI 层
推荐路线:case_by_case。验证建议:用典型报表数据集比对每个单元格结果,重点覆盖迭代规则与空值。
规则样例
SELECT * FROM sales MODEL DIMENSION BY (dept) MEASURES (amt) RULES (amt[ANY] = 0)
SELECT * FROM t MODEL RETURN UPDATED ROWS DIMENSION BY (id) MEASURES (v) RULES (v[ANY] = v[CV()])
SELECT model_name FROM product_model
参考来源
- https://github.com/orafce/orafce/blob/841978f4ec493492bb57fd12415959695cae1b64/README.asciidoc#L9-L267
- https://github.com/orafce/orafce/blob/841978f4ec493492bb57fd12415959695cae1b64/README.asciidoc#L269-L546
- https://github.com/orafce/orafce/blob/841978f4ec493492bb57fd12415959695cae1b64/README.asciidoc#L786-L943
- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html
相关改造点
- ORACLE → PostgreSQL 16 + orafce 全部改造点
- PostgreSQL 16 + orafce 兼容性总览
- ORACLE 迁移国产库总览
- ORACLE ADD_MONTHS 函数 迁移 PostgreSQL 16 + orafce 怎么改
- ORACLE ALTER SESSION SET 会话参数 迁移 PostgreSQL 16 + orafce 怎么改
- ORACLE ANYDATA 动态类型列 迁移 PostgreSQL 16 + orafce 怎么改
- ORACLE ASCIISTR Unicode 转义函数 迁移 PostgreSQL 16 + orafce 怎么改
- ORACLE 关联数组(INDEX BY 表) 迁移 PostgreSQL 16 + orafce 怎么改
- ORACLE AT TIME ZONE 时区表达式 迁移 PostgreSQL 16 + orafce 怎么改