database compatibility assessment

ORACLE PIVOT / UNPIVOT 子句 迁移 gaussdb 505 A 模式 怎么改

迁衡基于规则 ora.syntax.pivot 分析 ORACLE PIVOT / UNPIVOT 子句 到 gaussdb 505 A 模式 的兼容性、改写路径与验证建议。

兼容性判定

真机验证:opengauss 6.0.5 · 未见 PIVOT/UNPIVOT 语法支持,待真库复核 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容
支持度none
严重度major
置信度high
依据规则ora.syntax.pivot

怎么改

条件聚合(CASE + GROUP BY)

判定说明

未见 PIVOT/UNPIVOT 语法支持,待真库复核 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容

库侧 / 应用侧路径

库侧改造

可行:对象内改写为条件聚合(CASE + GROUP BY)

应用侧改造

可行:应用 SQL 改条件聚合;动态列需求上移应用层行转列

推荐路线:app_side。验证建议:全部枚举值输出列比对;新增枚举值不再自动出列,与业务确认

规则样例

SELECT * FROM sales PIVOT (SUM(amt) FOR quarter IN ('Q1' AS q1, 'Q2' AS q2))
SELECT * FROM wide_t UNPIVOT (val FOR metric IN (cpu, mem, disk))
SELECT quarter, SUM(amt) FROM sales GROUP BY quarter