CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement
От | Thomas Kellerer |
---|---|
Тема | CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement |
Дата | |
Msg-id | mkbrv5$vfc$1@ger.gmane.org обсуждение исходный текст |
Ответы |
Re: CallableStatement.getParameterMetaData() throws exception
for valid {call ...} statement
|
Список | pgsql-jdbc |
Hello, I just noticed the following: Using this sample function from the manual: CREATE FUNCTION sum_n_product(x int, y int, OUT sum int, OUT prod int) AS $$ BEGIN sum := x + y; prod := x * y; END; $$ LANGUAGE plpgsql; When calling this through JDBC, the following works without problems: cstmt = connection.prepareCall("{call sum_n_product(?,?,?,?)}"); cstmt.registerOutParameter(3, Types.INTEGER); cstmt.registerOutParameter(4, Types.INTEGER); cstmt.setInt(1, 2); cstmt.setInt(2, 5); cstmt.execute(); int x1 = cstmt.getInt(3); int x2 = cstmt.getInt(4); System.out.println("x1: " + x1); System.out.println("x2: " + x2); However when calling ParameterMetaData meta = cstmt.getParameterMetaData(); after prepareCall() the following exception is thrown: org.postgresql.util.PSQLException: ERROR: function sum_n_product(unknown, unknown, unknown, unknown) does not exist Hint: No function matches the given name and argument types. You might need to add explicit type casts. Position: 15 Casting everything to integer ( "{call sum_n_product(?::int,?::int,?::int,?::int)}" ) produces the same error (except thatthe parameter list shows integer in the exception message). This looks like a bug to me. Why should getParameterMetaData() throw an exception if the call is valid and working? Driver version is 9.4-1200 Postgres version is 9.4.2 Java version is 1.7.0_55 Regards Thomas
В списке pgsql-jdbc по дате отправления: