数据库主键问题

我是社区第7338位番薯,欢迎点我头像关注我哦~
ARNING:ORA-01400: 无法将 NULL 插入 ("FLDMAX"."KTD_ROTA_MANAGE"."KTD_ROTA_MANAGEID")
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:744)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:965)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3338)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3422)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
at com.fr.data.core.db.dml.Insert.execute(Unknown Source)
at com.fr.report.write.config.IntelliDMLConfig.dmlSubmit(Unknown Source)
at com.fr.report.write.config.DMLConfig$ExtractionSubmitter.run(Unknown Source)
at com.fr.report.core.A.C$_D.setCurrentColumnRow(Unknown Source)
at com.fr.report.script.Calculator.extract(Unknown Source)
at com.fr.report.write.config.DMLConfig.execute(Unknown Source)
at com.fr.data.DBManipulation$CommitWrapper.commit(Unknown Source)
at com.fr.data.DBManipulation.commit2db(Unknown Source)
at com.fr.report.write.BuiltInSQLSubmiter.execute(Unknown Source)
at com.fr.report.ReportWriteAttr.submit(Unknown Source)
at com.fr.report.core.ReportUtils.submit(Unknown Source)
at com.fr.web.core.service.WriteService.submitReport(Unknown Source)
at com.fr.web.core.service.WriteService.process(Unknown Source)
at com.fr.web.core.ReportDispatcher.dealWithRequest(Unknown Source)
at com.fr.web.ReportServlet.doGet(Unknown Source)
at com.fr.web.ReportServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

数据库中的主键在填报中不需要该字段,并且该主键字段在数据库中是自增字段,这是什么原因呢。。。请各位帮小弟看一下。。谢谢

发表于 2012-7-10 14:30:26
你是不是没设置报表主键?没有设置报表主键的话就是进行insert操作,这个时候数据库主键字段又没用到,导致那个字段插入的是null,而数据库主键是不允许为空的,就出错了
数据库主键和报表主键作用不同
数据库主键是确保数据唯一性
报表主键主要是用来判断,编辑的记录数据库中有没有,有的话就做update,没有的话就是insert
发表于 2012-7-11 09:10:22
那就是插入数据的时候数据库主键为null
oracle自增长你是用序列和触发器做的么?我记得好像对于这样的数据库主键字段,在FR的报表填报属性中随便填入一个值,让他不为空,来避免null的情况,可以试试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

4回帖数 1关注人数 4585浏览人数
最后回复于:2012-7-11 09:17

返回顶部 返回列表