兼容性判定
公开资料依据 · 建议 PoC 复核支持度none
严重度minor
置信度medium
依据规则ora.func.last_day
迁移建议
按 NLS_CALENDAR 求月末并恢复秒内时间,再 cast 到 Oracle-DATE 映射以返回 DATE;非公历专门实现
判定说明
date_trunc 组合默认公历且返回类型/精度可能不同;建议 PoC 复核
库侧 / 应用侧路径
库侧改造
可行:公历用 date_trunc/月区间恢复秒内时间并 cast timestamp(0);非公历建兼容函数
应用侧改造
可行:应用按源 NLS_CALENDAR 计算月末并绑定无时区秒精度结果
推荐路线:db_side。验证建议:覆盖公历/非公历 NLS_CALENDAR、闰年、大小月、年末、非零时间和 timestamp/TZ 输入;确认返回 DATE、时分秒保留且时区/小数秒丢失
规则样例
SELECT LAST_DAY(SYSDATE) FROM dual
SELECT LAST_DAY(bill_month) FROM bill
参考来源
相关改造点
- LAST_DAY 函数 的 21 目标横向专业场景
- ORACLE → PostgreSQL 16 全部改造点
- PostgreSQL 16 兼容性总览
- ORACLE 迁移国产库总览
- ORACLE ADD_MONTHS 函数 迁移 PostgreSQL 16 适配说明
- ORACLE ALTER SESSION SET 会话参数 迁移 PostgreSQL 16 适配说明
- ORACLE ANYDATA 动态类型列 迁移 PostgreSQL 16 适配说明
- ORACLE ASCIISTR Unicode 转义函数 迁移 PostgreSQL 16 适配说明
- ORACLE 关联数组(INDEX BY 表) 迁移 PostgreSQL 16 适配说明
- ORACLE AT TIME ZONE 时区表达式 迁移 PostgreSQL 16 适配说明