甲骨文错误:不是有效的月份



我正在在WebSphere 7.0版本上运行一个应用程序,该版本是在我的QA Env上新设置的,并且在Oracle错误下方进行了

SELECT MODIFIED_DATE 
FROM /*Query Builder Clause*/ abc 
WHERE  abc_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)

抛出以下异常

错误报告:

SQL错误:ORA-01843:不是有效的月份 01843. 00000-"不是有效的月份"

此异常仅在WebSphere中弹出。另外,我无法修改代码,因为同一代码在现场的WebSphere上运行。我尝试执行WebSphere用户。TimeZone设置,我也尝试了默认的OJDBC6.JAR到更高版本。同样的代码在JBOSS和WEBLOGIC中正常工作。请帮助我解决此问题。

oracle不用毫秒存储日期类型,这意味着您必须修剪最后一个令牌。在这种情况下,您的表达方式是:

NVL(to_date('2010-3-17 11.30.00', 'yyyy-mm-dd hh24.mi.ss'),SYSDATE)

您也可以转换为时间戳:

NVL(to_timestamp('2010-3-17 11.30.00.0', 'yyyy-mm-dd hh24.mi.ss.ff1'),SYSDATE)

问题是'2010-3-17 11.30.10.0''MM-dd-yyyy hh24:mi:ss'不匹配。我假设使用此功能的其他服务器在使用格式MM-dd-yyyy的不同语言环境中。如果您无法进行任何代码更改以重新格式化日期,则需要更改JVM语言环境以匹配其工作的位置(或任何使用MM-dd-yyyy的语言环境)。请参阅下面的链接以更改JVM环境:

如何为我的JVM设置默认场所?

相关内容

最新更新