thrownew PSQLException(GT.tr("The column index is out of range: {0}, number of columns: {1}.", new Object[]{index, paramValues.length}), PSQLState.INVALID_PARAMETER_VALUE);
flags[index-1] |= OUT;
paramValues[index-1] = sqlType; //added by Alex: there is no such line in the original source code
I am migrating from Oracle to Postgresql, and have encountered below issue while calling stored procedure via the latest PG JDBC (postgresql-9.4-1201.jdbc4.jar).
Here is the procedure snippet:
----------start------------
PROCEDURE p_myprocedure(a character varying, b character varying, c character varying,d character varying, OUT o1 text, OUT o2 text) IS
BEGIN
Blalabla;
END;
----------end-------------
In my Java code, I have to set the value of the out parameters like input as bellowing:
stmt.setString (5,"");//need to set the output value
stmt.setString (6,""); //need to set the output value
before invoking the ‘stmt.execute();’;
Otherwise, it will throw error like:
ERROR: function p_myprocedure (character varying, character varying, character varying, character varying) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
But setting output is unnecessary if I use Oracle DB or access Postgresql DB via EDB jdbc driver.
Is there any possible way to avoid such out parameter settings ?
Thanks & regards,
Alex
This e-mail and any attachments thereto are intended for the sole use of the recipient(s) named above and may contain confidential and/or privileged material. Any use of the information contained herein (including, but not limited to, total or partial reproduction, communication, or dissemination in any form) by persons other than the intended recipient(s) is prohibited. If you received this in error, please contact the sender immediately and delete the material from any computer.