#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.