ENCODE
Encode binary data into a SQL expression of type TEXT
.
Syntax
ENCODE(<expression>, <format>)
Parameters
Parameter | Description | Supported input types |
---|---|---|
<expression> | A SQL expression of type BYTEA | BYTEA |
<format> | Format to use to encode binary data | HEX , ESCAPE , BASE64 (case insensitive) |
The HEX
format represents each 4 bits of data as one hexadecimal digit, 0 through f, writing the higher-order digit of each byte first. The ENCODE
function outputs the a-f hex digits in lower case. Because the smallest unit of data is 8 bits, there are always an even number of characters returned by ENCODE
.
The ESCAPE
format converts zero bytes and bytes with the high bit set into octal escape sequences (\nnn) and doubles backslashes. Other byte values are represented literally.
THE BASE64
format, per RFC 2045 Secion 6.8, breaks encoded lines at 76 characters using a newline for end of line.
Return Type
TEXT
Example
The following examples encode binary expressions to the ESCAPE
, HEX
, and BASE64
format:
SELECT
ENCODE('123\000456'::BYTEA, 'ESCAPE');
Returns: 123\000456
SELECT
ENCODE('123\000456'::BYTEA, 'HEX');
Returns: 31323300343536
SELECT
ENCODE('123\000456'::BYTEA, 'BASE64');
Returns: MTIzADQ1Ng==