database compatibility assessment

ORACLE SYS_CONTEXT 函数 迁移 postgresql 16 怎么改

迁衡基于规则 ora.func.sys_context 分析 ORACLE SYS_CONTEXT 函数 到 postgresql 16 的兼容性、改写路径与验证建议。

兼容性判定

支持度none
严重度major
置信度high
依据规则ora.func.sys_context

怎么改

current_user/current_schema/inet_client_addr() 等逐键映射

判定说明

自定义 context 无对应,需应用层改造

库侧 / 应用侧路径

库侧改造

可行:USERENV 常用键改目标端等价函数(current_user/current_schema 等);自定义 context 库侧无对应

应用侧改造

可行:上下文取值上移应用层(会话信息由应用注入 SQL 参数)

推荐路线:case_by_case。验证建议:判定条件:是否使用自定义 context(DBMS_SESSION.SET_CONTEXT)——是则必须应用层方案;USERENV 键映射清单逐个核对

规则样例

SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM dual
SELECT SYS_CONTEXT('APP_CTX', 'TENANT_ID') FROM dual
SELECT CURRENT_USER FROM dual