Java ORA-01858在数据库中插入日志

Java ORA-01858在数据库中插入日志,java,jdbc,oracle11g,log4j,Java,Jdbc,Oracle11g,Log4j,我正在应用程序中编写一个类,用于将日志插入oracle数据库。 我使用了log4j。 我做了以下配置: <appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender"> <param name="URL" value="jdbc:oracle:thin:@10.60.2.8:1521:dbName"/> <param name="Driver" value="oracle.jdbc.drive

我正在应用程序中编写一个类,用于将日志插入oracle数据库。 我使用了log4j。 我做了以下配置:

<appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender">
   <param name="URL" value="jdbc:oracle:thin:@10.60.2.8:1521:dbName"/>
   <param name="Driver" value="oracle.jdbc.driver.OracleDriver"/>
   <param name="User" value="test"/>
   <param name="Password" value="test"/> 
   <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="INSERT INTO LOG_OVERLOADREQUEST VALUES('%x{today}','%x {currentRequestURI}','%x {UserName}','%x {URI}','%x {method}','%x {CPULoad}','%x {timeSpent}','%x {lastCPULoad}','%x {firstFreeMemory}','%x {lastFreeMemory}','%x {appID}','%x {sessionId}')"/>
</layout>
</appender>
运行应用程序时,我会遇到以下错误: ORA-01858:在需要数字的位置找到非数字字符


我认为这与日期有关,但我尽了我所能,我不知道问题出在哪里。

插入语句中的“今天”将如何出现?这与会话的NLS日期/时间戳格式设置相比如何?您是否可以使用今天的DB时间戳,而不是通过JDBC传递值,在配置中使用类似于插入日志请求值(systimestamp…)?
private Logger overLoadRequestDB=Logger.getLogger("log4j.rootLogger");

Timestamp today = new Timestamp(System.currentTimeMillis());
                MDC.put("today", today);
                MDC.put("currentRequestURI", currentRequestURI);
                MDC.put("UserName", "Test");
                MDC.put("URI", currentRequestURI);
                MDC.put("method", "test");
                MDC.put("CPULoad",1234);
                MDC.put("timeSpent", 1234);
                MDC.put("lastCPULoad", 123);
                MDC.put("firstFreeMemory", 123);
                MDC.put("lastFreeMemory", 123);
                MDC.put("appID", 1);
                MDC.put("sessionId","123");

overLoadRequestDB.debug("test");
                overLoadRequestDB.info("test");