Ответ 1
Установите формат даты nls в триггере после входа в систему
Я определил глобальный 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.
Установите формат даты nls в триггере после входа в систему
Спасибо, это сработало для меня. Триггер, который я вставил, следующий:
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;