bytea

一种可以存储二进制字符串的数据类型

bytea 是一种数据类型,它允许存储任意原始二进制字符串,而不管数据库字符编码如何,它可以包含空字节和其他“不可打印”字符。

bytea 在所有 PostgreSQL 版本中都存在。

用法

bytea 类型支持两种用于输入和输出的外部格式:传统的“escape”格式和在PostgreSQL 9.0中引入的较新的“hex”格式。

hex”格式比“escape”格式更易于处理,但可能不受所有客户端应用程序的支持。在此格式中,二进制数据被编码为每个字节 2 个十六进制数字,最高位尼布尔在前;整个字符串以\x序列开头。十六进制数字可以是大写或小写;空格将被忽略。

postgres=# CREATE TABLE bytea_test (data BYTEA);
CREATE TABLE

postgres=# INSERT INTO bytea_test VALUES(E'\\xDEADBEEF 005c 313233');
INSERT 0 1

postgres=# SELECT * FROM bytea_test ;
           data         
---------------------------
 \xdeadbeef005c313233
(1 row)

传统的“escape”格式将二进制数据表示为 ASCII 字符序列,其中“不可打印”字符被转义为它们的三位八进制值。此格式有点麻烦;上面示例中使用的值需要输入为

postgres=# INSERT INTO bytea_test VALUES('\336\255\276\357\000\\123');

bytea 数据可以用这两种格式中的任何一种输入;输出默认为“hex”,并由GUC选项bytea_output控制

postgres=# SET bytea_output TO 'escape';
SET

postgres=# SELECT * FROM bytea_test ;
           data            
---------------------------
 \336\255\276\357\000\\123
(1 row)

更改历史记录

分类

bytea数据类型

另请参阅

bytea_output

反馈

提交任何关于“bytea”的评论、建议或更正 此处