| The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference
by The PostgreSQL Global Development Group Paperback (6"x9"), 454 pages ISBN 9781906966041 RRP £14.95 ($19.95) Sales of this book support the PostgreSQL project! Get a printed copy>>> |
2.1.2.2 String Constants with C-Style Escapes
PostgreSQL also accepts “escape”
string constants, which are an extension to the SQL standard.
An escape string constant is specified by writing the letter
E (upper or lower case) just before the opening single
quote, e.g., E'foo'. (When continuing an escape string
constant across lines, write E only before the first opening
quote.)
Within an escape string, a backslash character (\) begins a
C-like backslash escape sequence, in which the combination
of backslash and following character(s) represent a special byte
value, as shown in Table 2-1.
| Backslash Escape Sequence | Interpretation
|
\b | backspace
|
\f | form feed
|
\n | newline
|
\r | carriage return
|
\t | tab
|
\o,
\oo,
\ooo
(o = 0 - 7)
| octal byte value
|
\xh,
\xhh
(h = 0 - 9, A - F)
| hexadecimal byte value
|
\uxxxx,
\Uxxxxxxxx
(x = 0 - 9, A - F)
| 16 or 32-bit hexadecimal Unicode character value |
Any other
character following a backslash is taken literally. Thus, to
include a backslash character, write two backslashes (\\).
Also, a single quote can be included in an escape string by writing
\', in addition to the normal way of ''.
It is your responsibility that the byte sequences you create, especially when using the octal or hexadecimal escapes, compose valid characters in the server character set encoding. When the server encoding is UTF-8, then the Unicode escapes or the alternative Unicode escape syntax, explained in section 2.1.2.3 String Constants with Unicode Escapes, should be used instead. (The alternative would be doing the UTF-8 encoding by hand and writing out the bytes, which would be very cumbersome.)
The Unicode escape syntax works fully only when the server
encoding is UTF8. When other server encodings are
used, only code points in the ASCII range (up
to \u007F) can be specified. Both the 4-digit and
the 8-digit form can be used to specify UTF-16 surrogate pairs to
compose characters with code points larger than U+FFFF, although
the availability of the 8-digit form technically makes this
unnecessary. (When surrogate pairs are used when the server
encoding is UTF8, they are first combined into a
single code point that is then encoded in UTF-8.)
Caution: If the configuration parameter
standard_conforming_stringsisoff, then PostgreSQL recognizes backslash escapes in both regular and escape string constants. This is for backward compatibility with the historical behavior, where backslash escapes were always recognized. Althoughstandard_conforming_stringscurrently defaults tooff, the default will change toonin a future release for improved standards compliance. Applications are therefore encouraged to migrate away from using backslash escapes. If you need to use a backslash escape to represent a special character, write the string constant with anEto be sure it will be handled the same way in future releases.In addition to
standard_conforming_strings, the configuration parametersescape_string_warningandbackslash_quotegovern treatment of backslashes in string constants.
The character with the code zero cannot be in a string constant.
| ISBN 9781906966041 | The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference | See the print edition |