本文介绍SYS_CONTEXT函数支持的参数。
背景说明
Oracle官方建议使用SYS_CONTEXT函数获取系统变量,PolarDB O引擎支持SYS_CONTEXT函数的部分功能。
解决方案
SYS_CONTEXT函数使用方法如下表所示:
SELECT SYS_CONTEXT('USERENV', attribute) FROM dual;
在PolarDB O引擎中attribute只支持:
SESSION_USER、CURRENT_USER、CURRENT_SCHEMA、HOST、IP_ADDRESS、SERVER_HOST
如果需要使用其他attribute,可以使用自建函数实现相同功能:
create or replace function userenv(anynonarray) returns anynonarray as $$
declare
begin
case lower($1)
when '按需配置' then
return 自定义函数();
when '按需配置' then
return 自定义函数();
else
return null;
end case;
end;
$$ language plpgsql strict;
示例
select SYS_CONTEXT('USERENV', 'HOST') from dual;
"42.120.XX.XX/32"
select SYS_CONTEXT('USERENV', 'CURRENT_USER') from dual;
"admin"