|
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 |
|