On this page
9.5. Binary String Functions and Operators
This section describes functions and operators for examining and manipulating values of type bytea
.
SQL defines some string functions that use key words, rather than commas, to separate arguments. Details are in Table 9-11. PostgreSQL also provides versions of these functions that use the regular function invocation syntax (see Table 9-12).
Note: The sample results shown on this page assume that the server parameter
bytea_output
is set toescape
(the traditional PostgreSQL format).
Table 9-11. SQL Binary String Functions and Operators
Function | Return Type | Description | Example | Result |
---|---|---|---|---|
string || string |
bytea |
String concatenation | '\\Post'::bytea || '\047gres\000'::bytea |
\\Post'gres\000 |
octet_length(string) |
int |
Number of bytes in binary string | octet_length('jo\000se'::bytea) |
5 |
overlay(string placing string from int [for int]) |
bytea |
Replace substring | overlay('Th\000omas'::bytea placing '\002\003'::bytea from 2 for 3) |
T\\002\\003mas |
position(substring in string) |
int |
Location of specified substring | position('\000om'::bytea in 'Th\000omas'::bytea) |
3 |
substring(string [from int] [for int]) |
bytea |
Extract substring | substring('Th\000omas'::bytea from 2 for 3) |
h\000o |
trim([both] bytes from string) |
bytea |
Remove the longest string containing only bytes appearing in bytes from the start and end of string |
trim('\000\001'::bytea from '\000Tom\001'::bytea) |
Tom |
Additional binary string manipulation functions are available and are listed in Table 9-12. Some of them are used internally to implement the SQL-standard string functions listed in Table 9-11.
Table 9-12. Other Binary String Functions
Function | Return Type | Description | Example | Result |
---|---|---|---|---|
btrim(string bytea, bytes bytea) |
bytea |
Remove the longest string containing only bytes appearing in bytes from the start and end of string |
btrim('\000trim\001'::bytea, '\000\001'::bytea) |
trim |
decode(string text, format text) |
bytea |
Decode binary data from textual representation in string . Options for format are same as in encode . |
decode('123\000456', 'escape') |
123\000456 |
encode(data bytea, format text) |
text |
Encode binary data into a textual representation. Supported formats are: base64 , hex , escape . escape converts zero bytes and high-bit-set bytes to octal sequences (\ nnn ) and doubles backslashes. |
encode('123\000456'::bytea, 'escape') |
123\000456 |
get_bit(string, offset) |
int |
Extract bit from string | get_bit('Th\000omas'::bytea, 45) |
1 |
get_byte(string, offset) |
int |
Extract byte from string | get_byte('Th\000omas'::bytea, 4) |
109 |
length(string) |
int |
Length of binary string | length('jo\000se'::bytea) |
5 |
md5(string) |
text |
Calculates the MD5 hash of string , returning the result in hexadecimal |
md5('Th\000omas'::bytea) |
8ab2d3c9689aaf18 b4958c334c82d8b1 |
set_bit(string, offset, newvalue) |
bytea |
Set bit in string | set_bit('Th\000omas'::bytea, 45, 0) |
Th\000omAs |
set_byte(string, offset, newvalue) |
bytea |
Set byte in string | set_byte('Th\000omas'::bytea, 4, 64) |
Th\000o@as |
get_byte
and set_byte
number the first byte of a binary string as byte 0. get_bit
and set_bit
number bits from the right within each byte; for example bit 0 is the least significant bit of the first byte, and bit 15 is the most significant bit of the second byte.
See also the aggregate function string_agg
in Section 9.20 and the large object functions in Section 33.4.
© 1996–2019 The PostgreSQL Global Development Group
Licensed under the PostgreSQL License.
https://www.postgresql.org/docs/9.6/functions-binarystring.html