Home
Analytics
SEVERE: Cannot set a null value to parameter 1
Nick Sheinov
<p>Hi. I have a problem in BIRT log file.</p>
<p>when I set null value to unrequired parameter at view report as PDF I get this SEVERE error.</p>
<p> </p>
<blockquote class="ipsBlockquote">
<p> </p>
<p>SEVERE: Cannot set a null value to parameter 1.<br>
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot set preparedStatement null value.<br>
SQL error #1:<span><em>Unsupported</em> feature</span><br>
;<br>
java.sql.SQLException: <span><em>Unsupported</em> feature</span><br>
at org.eclipse.birt.report.data.oda.jdbc.Statement.setNull(Statement.java:906)<br>
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.setNull(OdaQuery.java:1223)<br>
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doSetNull(PreparedStatement.java:4691)<br>
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setNull(PreparedStatement.java:4173)<br>
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setParameterValue(PreparedStatement.java:3113)<br>
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setParameterValue(PreparedStatement.java:3070)<br>
at org.eclipse.birt.data.engine.executor.DataSourceQuery.setInputParameterBinding(DataSourceQuery.java:1173)<br>
at org.eclipse.birt.data.engine.executor.DataSourceQuery.addParameterDefns(DataSourceQuery.java:607)<br>
at org.eclipse.birt.data.engine.executor.DataSourceQuery.prepare(DataSourceQuery.java:306)<br>
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.prepareOdiQuery(PreparedOdaDSQuery.java:621)<br>
at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:349)<br>
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:463)<br>
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)<br>
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)<br>
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:179)<br>
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:651)<br>
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)<br>
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:285)<br>
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1947)<br>
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)<br>
at org.eclipse.birt.report.engine.executor.GridItemExecutor.execute(GridItemExecutor.java:65)<br>
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)<br>
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)<br>
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)<br>
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)<br>
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)<br>
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)<br>
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181)<br>
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)<br>
at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:937)<br>
at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)<br>
at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)<br>
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)<br>
at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)<br>
at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)<br>
at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:116)<br>
at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)<br>
at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doPost(BaseReportEngineServlet.java:224)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)<br>
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<br>
at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)<br>
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)<br>
at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl$LegacyServlet.service(HttpServiceRuntimeImpl.java:1232)<br>
at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)<br>
at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:63)<br>
at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:98)<br>
at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:372)<br>
at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.service(ProxyServlet.java:70)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<br>
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:363)<br>
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)<br>
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)<br>
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)<br>
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)<br>
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)<br>
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)<br>
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)<br>
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)<br>
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)<br>
at org.eclipse.jetty.server.Server.handle(Server.java:499)<br>
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)<br>
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)<br>
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)<br>
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)<br>
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)<br>
at java.lang.Thread.run(Unknown Source)<br>
Caused by: java.sql.SQLException: <span><em>Unsupported</em> feature</span><br>
at oracle.jdbc.driver.OracleParameterMetaData.getParameterType(OracleParameterMetaData.java:166)<br>
at org.eclipse.birt.report.data.oda.jdbc.Statement.setNull(Statement.java:901)<br>
... 66 more</p>
</blockquote>
<p>the same error in log with parameter 2 and parameter 3.</p>
<p>my query </p>
<pre class="_prettyXprint _lang-sql">
select *
from table
where id_project = :p_id_project
and (id_main_component =
case
when :p_id_component1 is not null then :p_id_component3
else ''
end
or (:p_id_component2 is null and id_main_component is null))
</pre>
<p>I set null value to parameters p_id_component1, p_id_component2, p_id_component3.</p>
<p> </p>
<p>Please, help me to resolve this problem</p>
Find more posts tagged with
Comments
micajblock
<p>That is because it is not legal syntax. At least not via JDBC. In JDBC parameters are used with '?' like this:</p>
<pre class="_prettyXprint">
select *
from table
where id_project = ?</pre>
<p>That being said I would suggest manipulating the SQL in the beforeOpen event based on the parameters.</p>
Nick Sheinov
<blockquote class="ipsBlockquote" data-author="mblock" data-cid="146948" data-time="1488376903">
<div>
<p>That is because it is not legal syntax. At least not via JDBC. In JDBC parameters are used with '?' like this:</p>
<pre class="_prettyXprint">
select *
from table
where id_project = ?</pre>
<p>That being said I would suggest manipulating the SQL in the beforeOpen event based on the parameters.</p>
</div>
</blockquote>
<p> </p>
<p>But this error appears only when I set null value to parameters. And there's no errors when I set not null values.</p>
micajblock
<p>Ask Oracle. The error you are getting is from Oracle. I would guess that when you use a syntax :param, that value cannot be null. </p>