Проблема с форматом даты, возникающая в websphere

#java #linux #oracle #jboss #websphere

#java #linux #Oracle #jboss #websphere

Вопрос:

Мне нужна помощь. Ниже приведены 2 одинаковых запроса select под управлением Jboss и websphere, которые установлены в Linux box. В Jboss запрос работает нормально, но сбой в websphere. Кодовая база для обоих одинакова. Jboss

 SELECT MODIFIED_DATE FROM /*Query Builder Clause*/ ACA_RULE WHERE  ACA_RULE_CID = '1455' AND NVL(to_date('**12/14/2015 8:48:41**', 'MM-dd-yyyy hh24:mi:ss'), SYSDATE)=decode(MODIFIED_DATE,null,SYSDATE,MODIFIED_DATE)
  

Websphere

 SELECT MODIFIED_DATE FROM /*Query Builder Clause*/ ACA_RULE WHERE  ACA_RULE_CID = '1189' AND NVL(to_date(**'2010-3-17 11.30.10.0'**, 'MM-dd-yyyy hh24:mi:ss'), SYSDATE)=decode(MODIFIED_DATE,null,SYSDATE,MODIFIED_DATE)
  

Следовательно, выдает

 java.sql.SQLDataException: ORA-01843: not a valid month
  

Пожалуйста, помогите мне решить эту проблему.

Комментарии:

1. ‘2010-3-17 11.30.10.0 ==> 2010 год не является действительным месяцем. Измените свой шаблон даты.

2. Вы используете один и тот же формат даты и времени 'MM-dd-yyyy hh24:mi:ss' в обоих запросах, но форматы ваших исходных данных отличаются '12/14/2015 8:48:41' и '2010-3-17 11.30.10.0'

3. да, я использую тот же формат данных и тот же код .. отличается только сервер. В jboss: 14.12.2015 8:48:41, но websphere преобразуется в ‘2010-3-17 11.30.10.0’ и выдает исключение oracle

4. Являются to_date('**12/14/2015 8:48:41**', 'MM-dd-yyyy hh24:mi:ss') и to_date(**'2010-3-17 11.30.10.0'**, 'MM-dd-yyyy hh24:mi:ss') одинаковыми?

5. Ваш вопрос организован неправильно? Я думаю, что другие комментарии указывают на то, что вы показываете два разных запроса под заголовками «Jboss» и «Webhere». Вы хотите сказать, что оба этих запроса на самом деле оба работают на Jboss и оба выдают ошибку в WebSphere? Если это так, вам следует переформулировать вопрос.

Ответ №1:

вы должны использовать следующим образом;

Websphere

 SELECT MODIFIED_DATE FROM /*Query Builder Clause*/ ACA_RULE WHERE  ACA_RULE_CID = '1189' AND NVL(to_date(**'2010-3-17 11.30.10'**, 'yyyy-MM-dd hh24:mi:ss'), SYSDATE)=decode(MODIFIED_DATE,null,SYSDATE,MODIFIED_DATE)
  

Комментарии:

1. я не должен изменять формат даты. Запрос должен работать так же, как он работает в Jboss. Формат даты должен быть ММ-ДД-ГГГГ. Я попытался перейти на более высокую версию ojdbc6.jar в websphere у меня все еще не работало. Также я попытался установить формат NLS_DATE в настройках wepsphere.