3

Log4j2 のJDBCAppenderを使用して、値を Oracle の日付列に挿入しようとしています。isEventTimestamp の使い方は知っていますが、ThreadContext から日付を挿入する必要があります。

日付を正しくフォーマットしていないと思いますが、正しくフォーマットする方法に関するドキュメントが見つかりません。

日付のフォーマット方法:

ThreadContext.put("DATE_VALUE", new Date().toString());

これは、私が使用している Log4j2 JDBCAppender 列要素です。

<Column name="DATE_COLUMN" pattern="%X{DATE_VALUE}" />

これは私が得ているエラーです:

2013-07-25 08:17:18,145 ERROR Failed to insert record for log event in
manager [jdbcManager{ description=XXXXXXXXX, bufferSize=5,
connectionSource=driverManager{ url=jdbc:oracle:thin:@//XXXXXXXXX,
username=XXXXXXXXX, passwordHash=XXXXXXXXX }, tableName=XXXXXXXXX,
columns=[ { name=DATE_COLUMN, layout=%X{DATE_VALUE}, literal=null,
timestamp=false } ] }]. java.sql.SQLDataException:
ORA-01858: a non-numeric character was found where a numeric was expected
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)

助言がありますか?

4

0 に答える 0