2009-11-29 47 views
0

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

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

odaconsumer.CannotGetBigDecimalFromColumn(1周时间(s)) 细节:org.eclipse.birt.report.engine.api.EngineException:不能获得来自塔的十进制值:1.Cannot得到在BigDecimal值结果集.SQL错误#1:[IBM] [JDBC驱动程序] CLI0610E列号无效。 org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1085)at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1121)SQLSTATE = S1002 at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:88)在org.eclipse.birt.report.engine.executor.DataItemExecutor.execute(DataItemExecutor.java:75)在org.eclipse。 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 )at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)at org.e (org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:151))的组件。 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)at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler .__在org.eclipse.birt.report.service.actionhandler上执行(BirtGetPageAllActionHandler.java:131)。 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(AbstractBaseActionHandler.java:90) AbstractBaseComponentProcessor。的java:143)在org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)在sun.reflect.GeneratedMethodAccessor43.invoke(未知来源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)在org.eclipse.birt.report.soapengine.endpoint的org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)处的java.lang.reflect.Method.invoke(Unknown Source) .BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)在sun.reflect.GeneratedMethodAccessor42.invoke(未知来源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在java.lang.reflect.Method.invoke(未知来源)在org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)at org.apache.axis.providers。 java.javaProvider.invoke(JavaProvider.java:323)在org.apache.axis.strat 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)at org.apache.axis.transport.http.AxisServlet.doPost (AxisServlet.java:699)在org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)在javax.servlet.http.HttpServlet.service(HttpServlet.java:616)在org.apache。 axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet。 java:122)在org.eclipse.equinox.http.registry.internal。ServletManager $ ServletWrapper.service在org.eclipse.equinox.http.servlet.internal.ProxyServlet(ServletManager.java:180)在org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)。 processAlias(ProxyServlet.java:111)在org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)在javax.servlet.http.HttpServlet.service(HttpServlet.java:689)在组织.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)在有机mortbay.http.HttpContext.handle(HttpContext.java:1482)在org.mortbay.http.HttpServer.service(HttpServer.java:909)在org.mortbay.http.HttpConnection.service(HTTP Connection.java:820)在org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)在org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)在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)引起:org.eclipse。 birt.data.engine.core.DataException:无法从列中获取十进制值:1.无法在结果集中得到BigDecimal值.SQL错误#1:[IBM] [JDBC驱动程序] CLI0610E列号无效。 SQLSTATE = S1002 at org.eclipse.birt.data.engine.odaconsumer.ResultSet.throwDataException(ResultSet.java:497)at org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBigDecimal(ResultSet.java:289)at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch在组织(ResultSet.java:182)在org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:145)。 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)at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)at 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)at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:253)at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext的.java:org.eclipse.birt.report.data.oda.jdbc.JDBCException:1755)在org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77)... 56 moreCaused :无法在结果集中得到BigDecimal值.SQL错误#1:[IBM] [JDBC驱动程序] CLI0610E列号无效。 SQLSTATE = S1002; COM.ibm.db2.jdbc.DB2Exception:[IBM] [JDBC驱动程序] CLI0610E列号无效。 SQLSTATE = S1002,位于org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.getBigDecimal(OdaResultSet.java)org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBigDecimal(ResultSet.java:353) :COM.ibm.db2.jdbc.DB2Exception::448)在org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBigDecimal(ResultSet.java:285)... 70通过moreCaused [IBM] [JDBC驱动程序] CLI0610E列号无效。 COM.ibm.db2.jdbc.net.SQLExceptionGenerator.throwColumnIndexError(Unknown Source)上的SQLSTATE = S1002,位于COM.ibm.db2.jdbc.net.DB2ResultSet.checkHandlesAndIndex(Unknown Source),位于COM.ibm.db2.jdbc.net。 DB2ResultSet.getBigDecimal(来源不明)在org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBigDecimal(ResultSet.java:348)... 72多个

回答

1

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