日期:2014-05-20  浏览次数:21034 次

有关log4j的ORA-00917: 缺失逗号 问题
错误代码如下:
  log4j:ERROR Failed to excute sql
  java.sql.SQLException: ORA-00917: 缺失逗号

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
  ····

log4j.properties配置如下:

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.BufferSize=1
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@192.168.0.127:1521:oracle11g
log4j.appender.DATABASE.user=*****
log4j.appender.DATABASE.password=*****
log4j.appender.DATABASE.sql=insert into LOGMESSAGE(LogId,Class,Method,createTime,LogLevel,MSG) values (HIBERNATE_SEQUENCE.Nextval,'%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

求教各位大神


------解决方案--------------------
java.sql.SQLException: ORA-00917: 缺失逗号
这个是你操作oracle的sql语句有问题啊,提示你缺少逗号
------解决方案--------------------
insert into LOGMESSAGE(LogId,Class,Method,createTime,LogLevel,MSG) values (HIBERNATE_SEQUENCE.Nextval,'%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
反复仔细的看过好多遍没发现有什么问题
------解决方案--------------------
createTime 在数据库中是Date 类型不
------解决方案--------------------
看看实际插入的数据是不是包含了特殊符号,需要转义的
------解决方案--------------------
我的意思是你的语句
insert into LOGMESSAGE(LogId,Class,Method,createTime,LogLevel,MSG) values (HIBERNATE_SEQUENCE.Nextval,'%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
里面的变量的值有没有特殊字符,比如%m里面是不是有单引号或者其他需要转义的