Настройка по умолчанию "alter session" для пользователя Oracle

для приложения JDBC мне нужно выпустить несколько команд ALTER SESSION. Я не хочу помещать их в сам код приложения. Есть ли способ указать значения по умолчанию для параметров сеанса для схемы базы данных, используемой приложением (на стороне базы данных) ?

2 ответов


большинство параметров сеанса определяются клиентским приложением. Если вы хотите переопределить параметры клиента, вы можете создать 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;

Я не тестировал это, но не могли бы вы заставить приложение вызывать хранимую процедуру, которая устанавливает переменные сеанса при создании сеанса? Затем при необходимости можно изменить хранимую процедуру на стороне сервера.