【问题标题】:BIRT with db2 giving problem带有 db2 的 BIRT 给出问题
【发布时间】:2009-11-29 09:11:46
【问题描述】:

我已经使用 db2jcc.jar 成功连接到 DB2 数据库,现在面临另一个问题。

当我创建一个数据集并预览它时。 BIRT 查看器抛出以下错误。 无法从列中获取十进制值:1。 无法在结果集中获取 BigDecimal 值。 SQL 错误 #1:[IBM][JDBC Driver] CLI0610E 列号无效。 SQLSTATE=S1002

odaconsumer.CannotGetBigDecimalFromColumn(1 次) 详细信息:org.eclipse.birt.report.engine.api.EngineException:无法从列中获取十进制值:1.无法在结果集中获取 BigDecimal 值。SQL 错误 #1:[IBM][JDBC Driver] CLI0610E 列无效数字。 SQLSTATE=S1002 在 org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1121) 在 org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1085) 在org.eclipse.birt.report.engine.executor.DataItemExecutor.execute(DataItemExecutor.java:75) 在 org.eclipse.org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:88)。 birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) 在 org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) 在org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33) 在 org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63 ) 在 org.e 的 org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) clipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:151) at org. eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:72) 在 org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:877) 在 org.eclipse.birt。 report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:938) 在 org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131) 在 org.eclipse.birt.report.service.actionhandler。 AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(抽象基础组件处理器。 java:143) 在 org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183) 在 sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source ) 在 java.lang.reflect.Method.invoke(Unknown Source) 在 org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) 在 org.eclipse.birt.report.soapengine.endpoint .BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) 在 org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) 在 org.apache.axis.providers。 org.apache.axis.strat 上的 java.JavaProvider.invoke(JavaProvider.java:323) egies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache .axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) 在 org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) 在 org.apache.axis.transport.http.AxisServlet.doPost (AxisServlet.java:699) 在 org.apache.javax.servlet.http.HttpServlet.service(HttpServlet.java:616) 在 org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)。 org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet. java:122) 在 org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180) 在 org.eclipse.equinox.http.servlet.internal.S org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) 上的 ervletRegistration.handleRequest(ServletRegistration.java:90) org.eclipse.equinox.http.servlet.internal.ProxyServlet.service( ProxyServlet.java:59) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:689) 在 org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:269) 在 org .mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) 在 org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler .java:568) 在 org.mortbay.http.HttpContext.handle(HttpContext.java:1530) 在 org.mortbay.http.HttpContext.handle(HttpContext.java:1482) 在 org.mortbay.http.HttpServer.service( HttpServer.java:909) 在 org.mortbay.http.HttpConnection.service(HttpConnection.java:820) 在 org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) 在 org.mortbay.ht tp.HttpConnection.handle(HttpConnection.java:837) 在 org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) 在 org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) 在 org.mortbay .util.ThreadPool$PoolThread.run(ThreadPool.java:534)Caused by: org.eclipse.birt.data.engine.core.DataException: Cannot get the decimal value from column: 1.Cannot get BigDecimal value in the result set .SQL 错误 #1:[IBM][JDBC Driver] CLI0610E 列号无效。 SQLSTATE=S1002 在 org.eclipse.birt.data.engine.odaconsumer.ResultSet.throwDataException(ResultSet.java:497) 在 org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBigDecimal(ResultSet.java:289) 在org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:182) 在 org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:145) 在 org. eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:102) 在 org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.(SimpleResultSet.java:80) 在 org.eclipse .birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:731) 在 org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:331) 在 org.eclipse.birt .data.engine.impl.QueryExecutor.execute(QueryExecutor.java:945) 在 org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233) 在 org.eclipse.birt.data.engine .impl.QueryResults.getResul tIterator(QueryResults.java:160) 在 org.eclipse.birt.report.engine.data.dte.QueryResultSet.(QueryResultSet.java:92) 在 org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery (DteDataEngine.java:129) 在 org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:253) 在 org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext .java:1755) 在 org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77) ... 56 更多原因:org.eclipse.birt.report.data.oda.jdbc.JDBCException : 无法在结果集中获取 BigDecimal 值。SQL 错误 #1:[IBM][JDBC Driver] CLI0610E 列号无效。 SQLSTATE=S1002 ; COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0610E 列号无效。 SQLSTATE=S1002 at org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBigDecimal(ResultSet.java:353) at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.getBigDecimal(OdaResultSet.java :448) at org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBigDecimal(ResultSet.java:285) ... 70 moreCaused by: COM.ibm.db2.jdbc.DB2Exception: [IBM] [JDBC Driver] CLI0610E 无效的列号。 SQLSTATE=S1002 在 COM.ibm.db2.jdbc.net.SQLExceptionGenerator.throwColumnIndexError(Unknown Source) 在 COM.ibm.db2.jdbc.net.DB2ResultSet.checkHandlesAndIndex(Unknown Source) 在 COM.ibm.db2.jdbc.net。 DB2ResultSet.getBigDecimal(Unknown Source) at org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBigDecimal(ResultSet.java:348) ... 72 更多

【问题讨论】:

    标签: reporting connection db2 birt


    【解决方案1】:

    这可能与 BIRT 无关。也许您的查询是为了检索数据。您是否尝试过在简单的 Java 程序中单独使用 jdbc 驱动程序来尝试检索数据?这可能比在 BIRT 中更容易调试(因为您实际上可以附加调试器)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 2015-06-03
      相关资源
      最近更新 更多