Re: [7.4.6] Escaping strings in text arrays passed through
От | Kris Jurka |
---|---|
Тема | Re: [7.4.6] Escaping strings in text arrays passed through |
Дата | |
Msg-id | Pine.BSO.4.56.0412162147330.8739@leary.csoft.net обсуждение исходный текст |
Ответ на | [7.4.6] Escaping strings in text arrays passed through JDBC? (Eli Bingham <eli@savagebeast.com>) |
Список | pgsql-jdbc |
On Thu, 16 Dec 2004, Eli Bingham wrote: > CallableStatement stmt = conn.prepareCall ("{ ? = call do_stuff > (?::text[]) }"; > stmt.registerOutParameter (1, Types.INTEGER); > stmt.setObject (2, "{x, y, z}") > > But what can I do when one of the input strings x, y, or z has a comma > in it? How can I escape the comma so that the stored procedure will > still see a text array of three elements? You can either use the ARRAY constructor: jurka=# SELECT ARRAY['x, ', 'y', 'z']; array ------------- {"x, ",y,z} or notice how the above added the quotes around the first value, this is also legal input syntax: jurka=# SELECT '{"x, ",y,z}::text[]; text ------------- {"x, ",y,z} This natural leads to how do you escape quotes? Which is answered by: jurka=# SELECT ARRAY['"','a']; array ------------ {"\"",a} For all the details, see: http://www.postgresql.org/docs/7.4/static/arrays.html#AEN5261 Kris Jurka
В списке pgsql-jdbc по дате отправления: