Как изменить значение по умолчанию nls_date_format для клиента Oracle JDBC - PullRequest
11 голосов
/ 15 января 2009

Я определил глобальный 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.

Ответы [ 2 ]

5 голосов
/ 15 января 2009

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

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;
5 голосов
/ 15 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...