本文介紹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"