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
|
| Список | 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 по дате отправления: