database compatibility assessment

ORACLE UPDATE 未带 WHERE 迁移 postgresql 16 怎么改

迁衡基于规则 ora.perf.select_star, ora.perf.update_without_where, ora.perf.delete_without_where 分析 ORACLE UPDATE 未带 WHERE 到 postgresql 16 的兼容性、改写路径与验证建议。

兼容性判定

支持度none
严重度major
置信度high
依据规则ora.perf.select_star, ora.perf.update_without_where, ora.perf.delete_without_where, ora.perf.cartesian_join, ora.perf.function_wrapped_column, ora.perf.implicit_date_string_compare, ora.perf.implicit_number_string_compare, ora.perf.not_in_subquery, ora.perf.or_chain, ora.perf.deep_nested_subquery, ora.perf.leading_wildcard_like, ora.perf.rownum_without_order, ora.perf.distinct_with_order, ora.perf.nvl_on_predicate_column, ora.perf.scalar_subquery_select, ora.perf.having_without_group_selectivity

怎么改

需按命中位置逐条评估改写

判定说明

静态性能风险维度独立报告呈现,不参与兼容评分

库侧 / 应用侧路径

库侧改造

需人工确认改造边界

应用侧改造

需人工确认改造边界

推荐路线:case_by_case。验证建议:全表 UPDATE 在迁移压测中单独评估锁等待、redo/事务日志和回滚窗口;确认是否确为批处理意图。

规则样例

SELECT * FROM orders
SELECT * FROM app.orders WHERE status = 'NEW'
SELECT id, status FROM orders