dario.ber wrote:
> How can I quote a string *exactly* as it is? I tried using 
> quote_literal() but it doesn't return what I need in some cases.
> 
> E.g.
> 
> If my 
> string is: ss\\\ss
> 
> And I do:
> 
> select quote_literal('ss\\\ss');
> 
> I get:
> 
> 
> E'ss\\ss'  <-- My string now has E'' added and one backslash 
> has been removed!
> 
> 
> What I want to do is to pass a string to a custom made function. Since the 
> string can contain various metacharcters I need some way to pass this string 
> exactly as it is.

If the backslashes are your only problem, set
standard_conforming_strings=on
(in postgresql.conf or in your session).

Then backslashes are treated as normal characters
(unless you prepend the string constant with E).

laurenz=> SET standard_conforming_strings=on;
SET
laurenz=> select quote_literal('ss\\\ss');
 quote_literal 
---------------
 E'ss\\\\\\ss'
(1 row)

Yours,
Laurenz Albe

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to