Re: [JDBC] Re: JDBC and the hstore ? operator - no longer workingwith build 1211
| От | Mark Rotteveel |
|---|---|
| Тема | Re: [JDBC] Re: JDBC and the hstore ? operator - no longer workingwith build 1211 |
| Дата | |
| Msg-id | 7cab903f4c0f8cd90f83f71db275f6ce@lawinegevaar.nl обсуждение исходный текст |
| Ответ на | [JDBC] Re: JDBC and the hstore ? operator - no longer working with build1211 (Thomas Kellerer <spam_eater@gmx.net>) |
| Ответы |
Re: [JDBC] Re: JDBC and the hstore ? operator - no longer workingwith build 1211
[JDBC] Re: JDBC and the hstore ? operator - no longer working with build1211 Re: Re: JDBC and the hstore ? operator - no longer workingwith build 1211 Re: JDBC and the hstore ? operator - no longer working with build1211 |
| Список | pgsql-jdbc |
On 2017-03-02 09:54, Thomas Kellerer wrote:
> Vladimir Sitnikov schrieb am 01.11.2016 um 15:00:
>>> This has been "broken" for a while now, you have to use ?? to get it
>>> to work.
>
> This still doesn't work completely with a PreparedStatement.
>
> Other hstore operators that start with an ? do not work: ?& and ?|
>
> e.g.:
>
> connection.prepareStatement("select * from foo where hstore_column
> ?& array['key']");
> connection.prepareStatement("select * from foo where hstore_column
> ?| array['key']");
>
> The prepareStatement() call succeeds, but when calling executeQuery()
> an exception is thrown:
>
> org.postgresql.util.PSQLException: No value specified for parameter
> 1.
>
> The goal is to pass the array as a parameter, something like:
>
> Array keys = con.createArrayOf("text", new String[]
> {"key1","key2"});
> connection.prepareStatement("select * from foo where hstore_column
> ?& ?");
> pstmt.setArray(1, keys);
> ResultSet rs = pstmt.executeQuery();
>
> Tested with 1212 and 42.0.0
I haven't tried it, but would you logically need to use ??& and ??|, if
the ? operator is escaped using ??
Mark
В списке pgsql-jdbc по дате отправления: