ORACLE DECODE 函数

迁移特征 decode 的规则事实、精确目标横向结论与可执行验证路径。产品家族相似性不作为精确版本结论的依据。

professionalmajorhighora.func.decode

场景说明

该场景属于“函数与表达式”,适用于 sql、mybatis、plsql。权威状态:可进入权威统计。

正向识别示例

以下均来自规则库中 should_hit=true 的合成公开示例,不是客户代码。

SELECT DECODE(status, 1, 'OK', 2, 'FAIL', 'UNKNOWN') FROM t
SELECT decode(flag, NULL, 'empty', 'has') FROM dual

21 个精确目标版本 / 模式

目标支持度证据等级公开边界深入核对
达梦 DM8partialdoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
GaussDB 505(ORA 模式)partialartifact_verified未登记额外公开说明,按来源与验证步骤复核。改造点 · 真机工件
GBase 8sfulldoc_based未登记额外公开说明,按来源与验证步骤复核。
GoldenDB V6partialartifact_verified本批真机语义对照通过;仅覆盖工件内代表性分支,混合类型、NULL 相等、短路与副作用边界仍需 PoC,本结论不超过 partial。改造点 · 真机工件
瀚高 HGDB 4.5fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
人大金仓 KingbaseES V8fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
OceanBase 4.2.5 MySQL 模式nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
OceanBase 4.2.5 Oracle 模式fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
OceanBase 4.3.5 MySQL 模式nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
OceanBase 4.3.5 Oracle 模式fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
openGauss 5.0 A 模式fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
openGauss 6.0 A 模式fullversion_observed未登记额外公开说明,按来源与验证步骤复核。
PolarDB(Oracle 兼容)2.0fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
PostgreSQL 16 + orafce 4.16partialdoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
PostgreSQL 16nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
神通数据库 7fulldoc_based未登记额外公开说明,按来源与验证步骤复核。
展开 5 个 unknown / undeclared 结论
openGauss 6.0 B 模式(Dolphin)unknownunverified当前事实源不足,不推断兼容。
磐维 PanWeiDB 2.0unknownunverified当前事实源不足,不推断兼容。
磐维 PanWeiDB 3.0 A 模式unknownunverified当前事实源不足,不推断兼容。
TDSQL Boundlessunknownunverified当前事实源不足,不推断兼容。
TiDB 8.5unknownunverified当前事实源不足,不推断兼容。

改造与验证路径

推荐方向

db_side · 先用目标保证的物化屏障/临时结果/过程变量求 expr 一次,普通 CTE 不保证;按首个 search(数值首对按 Oracle 数值优先级)统一比较类型,再改有序 searched CASE/双 NULL,并把 result/default 转成首结果有效类型

库侧

用 MATERIALIZED 屏障/过程变量保证 expr 一次,再按首 search/首结果类型改 CASE · 风险 review

应用侧

应用先求 expr 一次并绑定,再补比较 cast、双 NULL 分支和结果 cast · 风险 review

验收步骤

覆盖 expr 一次求值、NULL=NULL、重复 search 首次命中、无 default、首 search/首结果为字符或数值、混型转换失败和短路副作用;逐分支比对值与类型并建议 PoC 复核执行次数

公开来源