This section describes functions and operators for examining
and manipulating binary string values. Strings in this context
include values of the type BYTEA.
SQL defines some string
functions with a special syntax where certain keywords rather
than commas are used to separate the arguments. Details are in
Table
4-8. Some functions are also implemented using the regular
syntax for function invocation. (See Table
4-9.)
Table 4-8. SQL
Binary String Functions and Operators
Function |
Return Type |
Description |
Example |
Result |
string || string |
bytea |
string concatenation |
'\\\\Postgre'::bytea ||
'\\047SQL\\000'::bytea |
\\Postgre'SQL\000 |
octet_length (string ) |
integer |
number of bytes in binary string |
octet_length('jo\\000se'::bytea) |
5 |
position (substring in string ) |
integer |
location of specified substring |
position('\\000om'::bytea in
'Th\\000omas'::bytea) |
3 |
substring (string [from
integer] [for integer]) |
bytea |
extract substring |
substring('Th\\000omas'::bytea
from 2 for 3) |
h\000o |
trim ([both] characters from string ) |
bytea |
Removes the longest string containing only the
characters from the
beginning/end/both ends of the string . |
trim('\\000'::bytea from
'\\000Tom\\000'::bytea) |
Tom |
Additional binary string manipulation functions are available
and are listed below. Some of them are used internally to
implement the SQL-standard
string functions listed above.
Table 4-9. Other Binary String Functions
Function |
Return Type |
Description |
Example |
Result |
btrim (string bytea,
trim bytea) |
bytea |
Remove (trim) the longest string consisting only of
characters in trim from
the start and end of string . |
btrim('\\000trim\\000'::bytea,'\\000'::bytea) |
trim |
length (string ) |
integer |
length of binary string |
length('jo\\000se'::bytea) |
5 |
encode (string bytea,
type text) |
text |
Encodes binary string to ASCII-only representation. Supported
types are: 'base64', 'hex', 'escape'. |
encode('123\\000456'::bytea,
'escape') |
123\000456 |
decode (string text,
type text) |
bytea |
Decodes binary string from string previously encoded with
encode(). Parameter type is same as in encode(). |
decode('123\\000456',
'escape') |
123\000456 |