Excel Tools Missing IN or OUT parameter at index

For Appian version 24.2.1295.0 and Excel Tools version 2.6.3, I am getting following error.

 ERROR ImportExcelFileToDatabase ORA-17041: Missing IN or OUT parameter at index: 2

Is this due to a version miss match ? Which version will be suitable with my current version of Appian and will upgrading the plugin cause any issues with the older code?

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    Error is due to incorrect parameter mapping, not version mismatch.
    Excel Tools 2.8.x+ is compatible with Appian 24.2. Check your stored procedure parameters (especially index 2) and test any plugin upgrade in a lower environment first.

  • The parameters are mapped correctly and I had also verified the Excel headers with table column names. Following is the plugin param list which I am using and the Database Field Names are passed as a constant value. Both DB field name and excel headers have 22 items and are passed as constants. Even the spellings are verified multiple times.

    Stack trace is as follows:

    ERROR ImportExcelFileToDatabase ORA-17041: Missing IN or OUT parameter at index: 2
    https://docs.oracle.com/error-help/db/ora-17041/
     java.sql.SQLException: ORA-17041: Missing IN or OUT parameter at index: 2
    https://docs.oracle.com/error-help/db/ora-17041/
    	at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2065)
    	at oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:10181)
    	at oracle.jdbc.driver.OraclePreparedStatementWrapper.addBatch(OraclePreparedStatementWrapper.java:1003)
    	at jdk.internal.reflect.GeneratedMethodAccessor3033.invoke(Unknown Source)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:123)
    	at jdk.proxy2/jdk.proxy2.$Proxy228.addBatch(Unknown Source)
    	at com.appiancorp.ps.exceltools.util.ExcelHelperUtils.importExcelFile(ExcelHelperUtils.java:902)
    	at com.appiancorp.ps.exceltools.smartservice.ImportExcelFileToDatabase.run(ImportExcelFileToDatabase.java:86)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:136)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:130)
    	at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:28)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:130)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:88)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:22)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:67)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55)
    	at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143)
    	at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68)
    	at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:136)
    	at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    	at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110)
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:840)
    

Reply
  • The parameters are mapped correctly and I had also verified the Excel headers with table column names. Following is the plugin param list which I am using and the Database Field Names are passed as a constant value. Both DB field name and excel headers have 22 items and are passed as constants. Even the spellings are verified multiple times.

    Stack trace is as follows:

    ERROR ImportExcelFileToDatabase ORA-17041: Missing IN or OUT parameter at index: 2
    https://docs.oracle.com/error-help/db/ora-17041/
     java.sql.SQLException: ORA-17041: Missing IN or OUT parameter at index: 2
    https://docs.oracle.com/error-help/db/ora-17041/
    	at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2065)
    	at oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:10181)
    	at oracle.jdbc.driver.OraclePreparedStatementWrapper.addBatch(OraclePreparedStatementWrapper.java:1003)
    	at jdk.internal.reflect.GeneratedMethodAccessor3033.invoke(Unknown Source)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:123)
    	at jdk.proxy2/jdk.proxy2.$Proxy228.addBatch(Unknown Source)
    	at com.appiancorp.ps.exceltools.util.ExcelHelperUtils.importExcelFile(ExcelHelperUtils.java:902)
    	at com.appiancorp.ps.exceltools.smartservice.ImportExcelFileToDatabase.run(ImportExcelFileToDatabase.java:86)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:136)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:130)
    	at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:28)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:130)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:88)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:22)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:67)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55)
    	at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143)
    	at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68)
    	at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:136)
    	at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    	at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110)
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:840)
    

Children