From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement |
Date: | 2015-06-01 22:17:29 |
Message-ID: | mkillq$bni$1@ger.gmane.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | 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 after the first registerOutParameter() - failed as well).
So how can I retrieve the information about the parameters if I can't call getParameterMetaData() before registering the parameters (which I try to detect by calling that method). The JDBC JavaDocs do not mention such a restriction.
Thomas
From | Date | Subject | |
---|---|---|---|
Next Message | dmp | 2015-06-02 16:40:11 | Re: Re: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement |
Previous Message | Alexis Meneses | 2015-06-01 21:18:44 | Re: BUG on postgresql-9.4-1201-jdbc41 ... |