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 key words rather than commas are used to separate the
arguments. Details are in
Table 6-9.
Some functions are also implemented using the regular syntax for
function invocation.
(See Table 6-10.)
Table 6-9. SQL Binary String Functions and Operators
Function | Return Type | Description | Example | Result |
---|
string ||
string | bytea | String concatenation
| '\\\\Post'::bytea || '\\047greSQL\\000'::bytea | \\Post'greSQL\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 | Remove 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 in Table 6-10. Some
of them are used internally to implement the
SQL-standard string functions listed in Table 6-9.
Table 6-10. 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 | Encode 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 | Decode binary string from string previously
encoded with encode(). Parameter type is same as in encode().
| decode('123\\000456', 'escape') | 123\000456 |