为Oracle用户设置默认的"alter session"

Thi*_*ilo 8 oracle session configuration

对于JDBC应用程序,我需要发出一些ALTER SESSION命令.我不想将它们放入应用程序代码本身.有没有办法为应用程序使用的数据库模式(在数据库端)指定会话参数的默认值?

Vin*_*rat 13

大多数会话参数由客户端应用程序定义.如果要覆盖客户端设置,可以创建一个DATABASE TRIGGER.例如,这将LOGONBAR架构上创建一个触发器:

CREATE OR REPLACE TRIGGER bar.foo
   AFTER LOGON ON DATABASE WHEN (USER = 'BAR')
BEGIN
   dbms_session.set_nls('NLS_NUMERIC_CHARACTERS', '''.,''');
   EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA=hr';
END foo;
Run Code Online (Sandbox Code Playgroud)