From: | rob stone <floriparob(at)gmail(dot)com> |
---|---|
To: | Rémi Aubel <remi(dot)aubel(at)gmail(dot)com>, pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: "could not determine data type of parameter" with timestamp |
Date: | 2017-12-05 20:22:15 |
Message-ID: | 1512505335.4814.5.camel@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
On Tue, 2017-12-05 at 15:11 +0000, Rémi Aubel wrote:
> Hello,
>
>
>
> The solution given 4 years ago was to explicitly cast the parameter
> as a timestamp (select * from my_table where ?::timestamp is null).
> But this workaround is not really useful for me, because my
> application uses generated (dynamic) queries and targets multiple
> database types (not only PosgreSQL). So, when I know the targeted
> database, I do not know my parameter types anymore.
>
> Any suggestion?
>
> Thanks in advance.
>
> Rémi.
>
>
Hi Rémi,
After creating the Prepared Statement you can do a
ResultSetMetaData.getMetaData() which returns an object containing the
data types of the columns in your select list.
Then for each column in your "where" clause you can obtain its data
type and then do setLong, setString, setTimeStamp or whatever,
according to its type. Then do the "execute" to obtain the actual
result set.
HTH,
Rob
From | Date | Subject | |
---|---|---|---|
Next Message | Rémi Aubel | 2017-12-05 20:33:51 | Re: "could not determine data type of parameter" with timestamp |
Previous Message | Rémi Aubel | 2017-12-05 15:11:35 | "could not determine data type of parameter" with timestamp |