ORACLE SUBSTR 负起始位置(从尾部计数) 迁移 postgresql 16 不支持怎么办

聚焦不兼容风险、影响范围与 PoC 复核。 本页不新增结论,只复用规则 ora.func.substr_negative 与目标能力矩阵证据。

先看结论

支持度none
置信度high
严重度major

PG substr 负起始位是完全不同语义(不报错、结果错)——高危静默差异

不支持

right(s, n)

库侧 / 应用侧

库侧

可行:目标端兼容模式承接负起始位时保留;否则创建兼容 SUBSTR(负起始位=尾部倒数)

应用侧

可行:改 right()/长度表达式,逐处确认负值来源

验证建议:负起始位含越界(|pos|>串长)用例比对——目标原生 substr 不报错但结果错,必测

参考来源

社群/联系

迁移卡住时,带着案例找人复核

企业微信群、1v1 咨询和邮箱入口并列放置;二维码由站长配置,未配置时保留占位。

企业微信群活码 二维码待配置

适合迁移报错、SQL 改写和规则覆盖讨论。

企业微信 1v1 咨询 二维码待配置

适合完整代码库扫描、私有化部署和 PoC 复核。

公众号关注码 二维码待配置

用于沉淀 Oracle 去 O、PL/SQL 迁移和国产库避坑内容。

邮箱咨询

m01dm01db01@foxmail.com

发源库、目标库、代码规模和已脱敏案例短链,便于估算改造工作量。