setUseServerPrepare & typecasts

Поиск
Список
Период
Сортировка
От Scott Lamb
Тема setUseServerPrepare & typecasts
Дата
Msg-id 3DD22356.2060208@slamb.org
обсуждение исходный текст
Список pgsql-jdbc
I've got a bunch of queries that deal with functions in the custom
functions I've made. So I might have a function foo(integer) returning
text. A simple case:

     ps = conn.prepare("select foo(?)");

and then calling

     ps.setObject(1, new Integer(42), Types.INTEGER);

Without setUseServerPrepare, this works fine. With setUseServerPrepare,
this complains that foo(text) does not exist and suggests explicit
typecasts. With

     select foo(?::integer)

it works again.

Should this be necessary? I am telling it the type of that parameter
before I execute the statement. Does it need to know that at prepare
time? Is the explicit cast in the SQL the only way to do that?

I am using a layer of my own design that creates the placeholders and
binds the parameters for me from named, typed parameters. So I could
easily have it automatically insert "{fn convert(?, <TYPENAME>)}"
instead of "?" into the SQL everywhere I use parameters. Would that be
the best way to fix this problem?

Thanks,
Scott


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

Предыдущее
От: Thomas O'Dowd
Дата:
Сообщение: Re: res.wasNull() troubles when using CASE?
Следующее
От: snpe
Дата:
Сообщение: Re: streaming result sets: progress