grant insert on nls_session_parameters_log to public;
create public synonym nls_session_parameters_log for sys.nls_session_parameters_log;
数据库登录触发器:
create or replace trigger nls_log_dbtrig after logon on database
begin
if user in ('PHIL') then
insert into nls_session_parameters_log
select sysdate, (select sys_context('USERENV','SID') from dual), (select user from dual),parameter, value
from nls_session_parameters;
end if;
exception
when others then
null;
end;
/
没有简单的方法可以实现这一点。您可以通过跟踪会话或使用登录触发器来做到这一点。这是一个如何使用数据库登录触发器的示例。
记录表:
公共拨款和同义词:
数据库登录触发器:
测试:
显然,您最好将表放在适当的模式中并在每个用户的基础上授予。
如果您需要其他方法(会话跟踪)的帮助,请告诉我。
唯一(我知道的)可以从数据字典中轻松检索的 NLS 类型值是在 V$SESSION_CONNECT_INFO 中找到的 client_charset
IE