二进制类型

openGauss支持的二进制类型请参见表1

表 1 二进制类型

名称

描述

存储空间

BLOB

二进制大对象。

说明:

列存不支持BLOB类型。

最大为1GB-8203字节(即1073733621字节)。

RAW

变长的十六进制类型。

说明:

列存不支持RAW类型。

4字节加上实际的十六进制字符串。最大为1GB-8203字节(即1073733621字节)。

BYTEA

变长的二进制字符串。

4字节加上实际的二进制字符串。最大为1GB-8203字节(即1073733621字节)。

BYTEAWITHOUTORDERWITHEQUALCOL

变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为确定性加密,则该列的实际类型为BYTEAWITHOUTORDERWITHEQUALCOL),元命令打印加密表将显示原始数据类型。

4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。

BYTEAWITHOUTORDERCOL

变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为随机加密,则该列的实际类型为BYTEAWITHOUTORDERCOL),元命令打印加密表将显示原始数据类型。

4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。

_BYTEAWITHOUTORDERWITHEQUALCOL

变长的二进制字符串,密态特性新增的类型。

4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。

_BYTEAWITHOUTORDERCOL

变长的二进制字符串,密态特性新增的类型。

4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。

二进制类型 - 图1 说明:

  • 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-8203字节(即1073733621字节)。

  • 不支持直接使用BYTEAWITHOUTORDERWITHEQUALCOL和BYTEAWITHOUTORDERCOL,_BYTEAWITHOUTORDERWITHEQUALCOL,_BYTEAWITHOUTORDERCOL类型创建表。

示例:

  1. --创建表。
  2. openGauss=# CREATE TABLE blob_type_t1
  3. (
  4. BT_COL1 INTEGER,
  5. BT_COL2 BLOB,
  6. BT_COL3 RAW,
  7. BT_COL4 BYTEA
  8. ) ;
  9. --插入数据。
  10. openGauss=# INSERT INTO blob_type_t1 VALUES(10,empty_blob(),
  11. HEXTORAW('DEADBEEF'),E'\\xDEADBEEF');
  12. --查询表中的数据。
  13. openGauss=# SELECT * FROM blob_type_t1;
  14. bt_col1 | bt_col2 | bt_col3 | bt_col4
  15. ---------+---------+----------+------------
  16. 10 | | DEADBEEF | \xdeadbeef
  17. (1 row)
  18. --删除表。
  19. openGauss=# DROP TABLE blob_type_t1;