Подтвердить что ты не робот

Как изменить значение по умолчанию nls_date_format для клиента oracle jdbc

Я определил глобальный nls_date_format для Oracle 10.2 XE следующим образом:

alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;

При подключении в Windows клиенты переопределяют его в формате, специфичном для сеанса, поэтому мне нужно запустить эту строку в начале каждого сеанса:

alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

Однако у меня есть собственный код, который я не могу изменить (код jdbc, используя ojdbc14.jar), поэтому я не могу выполнить эту строку при приеме соединения. Есть ли способ изменить значение по умолчанию для nls_date_format для всех подключений jdbc? Возможно, добавление чего-то в строку соединения или какую-либо переменную среды, которую я могу использовать?

Кстати, sqlplus и sqldeveloper также переопределяют формат сервера своими собственными, но я узнал, как изменить их значения по умолчанию, поэтому проблема связана только с подключениями jdbc.

4b9b3361

Ответ 1

Установите формат даты nls в триггере после входа в систему

Ответ 2

Спасибо, это сработало для меня. Триггер, который я вставил, следующий:

CREATE OR REPLACE TRIGGER LOGINTRG
AFTER LOGON ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''';
END LOGINTRG;