Re: rounded brackets in prepared statement

Поиск
Список
Период
Сортировка
От dmp
Тема Re: rounded brackets in prepared statement
Дата
Msg-id 511AFB32.9080302@ttc-cmc.net
обсуждение исходный текст
Ответ на rounded brackets in prepared statement  (Ladislav DANKO <ladislav.danko@enaktyment.cz>)
Ответы Re: rounded brackets in prepared statement  (Ladislav DANKO <ladislav.danko@enaktyment.cz>)
Список pgsql-jdbc
It appears that since the argument to your prepare statement is a WHERE
operation and you are using the ~, Match Regular Expression Case
Sensitive, operator then the input is deemed as such. So parenthesis
are valid constructs in these cases.

Example from Documentation: POSIX Regular Expression Patterns
Chapter 9. Functions & Operators

'abc' ~ '(b|d)' true
'abc' ~ '(^(b|c)' false

danap.

Ladislav DANKO wrote:
> Hi folks,
>
> my setup: Java 1.6, JDBC PostgreSQL JDBC4 driver 9.1-903.
>
> Why when I do:
>
> PreparedStatement ps = myConnection.prepareStatement("SELECT a,b,c FROM
> mytable WHERE category ~ ?");
> ps.setString(1, "my/super/category/a(bcdef");
> result = ps.executeQuery();
>
> I need to escape rounded bracket in setString in this way:
> ps.setString(1, "super/category/a(bcdef".replaceAll("\\(", "\\\\(")));
>
> I think it has somethink to do with regular expessions but ot know much
> more about it.
>
> --
> With kind regards,
>
> Ladislav DANKO



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

Предыдущее
От: Bryan Varner
Дата:
Сообщение: Re: PostgreSQL XAResource & GlassFish 3.1.2.2
Следующее
От: Craig Ringer
Дата:
Сообщение: Re: [HACKERS] JPA + enum == Exception