对于JDBC应用程序,我需要发出一些ALTER SESSION命令。我不想将它们放入应用程序代码本身。有没有办法为应用程序使用的数据库模式(在数据库端)指定会话参数的默认值?
答案 0 :(得分:13)
大多数会话参数由客户端应用程序定义。如果要覆盖客户端设置,可以创建DATABASE TRIGGER
。例如,这将在LOGON
架构上创建BAR
触发器:
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;
答案 1 :(得分:0)
我没有对此进行过测试,但您是否可以让应用程序调用一个存储过程来设置创建会话时的会话变量?然后,您可以在需要时修改服务器端的存储过程。