Re: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement
| От | Thomas Kellerer |
|---|---|
| Тема | Re: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement |
| Дата | |
| Msg-id | mkillq$bni$1@ger.gmane.org обсуждение исходный текст |
| Ответ на | Re: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement (dmp <danap@ttc-cmc.net>) |
| Ответы |
Re: Re: CallableStatement.getParameterMetaData() throws exception
for valid {call ...} statement
|
| Список | pgsql-jdbc |
dmp wrote on 30.05.2015 21:50:
> Seems to work fine, maybe I have it wrong?
>
interesting, your code indeed works.
After playing around with it, the difference is that I call getParameterMetaData() *before* calling
registerOutParameter().
This works:
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();
meta = cstmt.getParameterMetaData();
This also works:
cstmt = connection.prepareCall("{call sum_n_product(?,?,?,?)}");
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);
meta = cstmt.getParameterMetaData();
cstmt.setInt(1, 2);
cstmt.setInt(2, 5);
cstmt.execute();
This does NOT work:
cstmt = connection.prepareCall("{call sum_n_product(?,?,?,?)}");
meta = cstmt.getParameterMetaData(); -- right after preparing the statement!
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);
cstmt.setInt(1, 2);
cstmt.setInt(2, 5);
cstmt.execute();
So getParameterMetaData() seems to only work after all OUT parameters have been registered (I also tried calling it
afterthe first registerOutParameter() - failed as well).
So how can I retrieve the information about the parameters if I can't call getParameterMetaData() before registering
theparameters (which I try to detect by calling that method). The JDBC JavaDocs do not mention such a restriction.
Thomas
В списке pgsql-jdbc по дате отправления: