Search code examples
stringpostgresqlescaping

String literals and escape characters in postgresql


Attempting to insert an escape character into a table results in a warning.

For example:

create table EscapeTest (text varchar(50));

insert into EscapeTest (text) values ('This is the first part \n And this is the second');

Produces the warning:

WARNING:  nonstandard use of escape in a string literal

(Using PSQL 8.2)

Anyone know how to get around this?


Solution

  • Partially. The text is inserted, but the warning is still generated.

    I found a discussion that indicated the text needed to be preceded with 'E', as such:

    insert into EscapeTest (text) values (E'This is the first part \n And this is the second');
    

    This suppressed the warning, but the text was still not being returned correctly. When I added the additional slash as Michael suggested, it worked.

    As such:

    insert into EscapeTest (text) values (E'This is the first part \\n And this is the second');