Re: "could not determine data type of parameter" with timestamp

Поиск
Список
Период
Сортировка
От Rémi Aubel
Тема Re: "could not determine data type of parameter" with timestamp
Дата
Msg-id CAG2M1fc_1R7Y+0_utULv+9+8tZPhe3K1kxsBkyqSiV76YJjTew@mail.gmail.com
обсуждение исходный текст
Ответ на Re: "could not determine data type of parameter" with timestamp  (rob stone <floriparob@gmail.com>)
Список pgsql-jdbc
Hi Rob,

Thank you for your answer.
Unfortunately, in my application, the condition in the where clause does not involve a column, but the bound parameter itself (? is null). Such a condition may be strange but, as I said previously, the request is dynamically generated.
I guess that getMetaData() won't help here.

Rémi.

Le mar. 5 déc. 2017 à 21:22, rob stone <floriparob@gmail.com> a écrit :


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
--


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: rob stone
Дата:
Сообщение: Re: "could not determine data type of parameter" with timestamp
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: "could not determine data type of parameter" with timestamp