I have set up a very simple stored procedure in HeidiSQL to update a value in a row based on a single input parameter.
CREATE DEFINER=`ignition`@`%` PROCEDURE `ProofTestFailure`(IN `SerialNumParam` BIGINT)
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY DEFINER
COMMENT 'Set all timber pieces ProofTestStatus to "OnHold" if test fails'
BEGIN
UPDATE FinishedPieces SET ProofTestStatus = 'On Hold' WHERE SerialNum = SerialNumParam;
END
The only input parameter is “SerialNumParam” with a Datatype of BIGINT and context set to IN
I’ve set up a pretty straight forward Stored Procedure Transaction Group as below:
When i trigger it i get the following error:
Error forwarding data: cannot parse parameter definition :IN `SerialNumParam` BIGINT
java.sql.SQLException: cannot parse parameter definition :IN `SerialNumParam` BIGINT
at org.mariadb.jdbc.CallableParameterMetaData.readMetadata(MySQLCallableStatement.java:199)
at org.mariadb.jdbc.CallableParameterMetaData.readMetadataFromDBIfRequired(MySQLCallableStatement.java:63)
at org.mariadb.jdbc.CallableParameterMetaData.getParam(MySQLCallableStatement.java:246)
at org.mariadb.jdbc.CallableParameterMetaData.getName(MySQLCallableStatement.java:287)
at org.mariadb.jdbc.MySQLCallableStatement.nameToIndex(MySQLCallableStatement.java:501)
at org.mariadb.jdbc.MySQLCallableStatement.setObject(MySQLCallableStatement.java:883)
at org.apache.commons.dbcp.DelegatingCallableStatement.setObject(DelegatingCallableStatement.java:247)
at com.inductiveautomation.ignition.gateway.datasource.SRConnectionWrapper$SRCallableStatement.setObject(SRConnectionWrapper.java:1458)
at com.inductiveautomation.factorysql.groups.storedprocgroup.SPHistoricalData.storeToConnection(SPHistoricalData.java:116)
at com.inductiveautomation.ignition.gateway.history.sinks.RecordDatasourceSink.storeDataToDatasource(RecordDatasourceSink.java:39)
at com.inductiveautomation.ignition.gateway.history.sf.sinks.AbstractDatasourceSink.storeToDatasource(AbstractDatasourceSink.java:135)
at com.inductiveautomation.ignition.gateway.history.sf.sinks.AbstractDatasourceSink.storeData(AbstractDatasourceSink.java:113)
at com.inductiveautomation.ignition.gateway.history.sf.sinks.AggregateSink.storeData(AggregateSink.java:160)
at com.inductiveautomation.ignition.gateway.history.forwarders.ForwarderThread.run(ForwarderThread.java:156)
I am using the MariaDB JDBC driver.