二进制类型
GaussDB支持的二进制类型请参见表1。
名称 |
描述 |
存储空间 |
---|---|---|
BLOB |
二进制大对象。 目前BLOB支持的外部存取接口仅为:
这些接口详细说明请参见DBE_LOB。 |
在astore下,最大为32TB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于32TB-1),因此BLOB类型最大值可能小于32TB-1。 在ustore下,最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此BLOB类型最大值可能小于1GB-1。 |
RAW |
变长的十六进制类型 |
4字节加上实际的二进制字符串。最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 |
BYTEA |
变长的二进制字符串。 |
4字节加上实际的二进制字符串。最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 |
BYTEAWITHOUTORDERWITHEQUALCOL |
变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为确定性加密,则该列的实际类型为BYTEAWITHOUTORDERWITHEQUALCOL),元命令打印加密表将显示原始数据类型。 |
4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 |
BYTEAWITHOUTORDERCOL |
变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为随机加密,则该列的实际类型为BYTEAWITHOUTORDERCOL),元命令打印加密表将显示原始数据类型。 |
4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 |
_BYTEAWITHOUTORDERWITHEQUALCOL |
变长的二进制字符串,密态特性新增的类型。 |
4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 |
_BYTEAWITHOUTORDERCOL |
变长的二进制字符串,密态特性新增的类型。 |
4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 |
- 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-1字节。
- 不支持直接使用BYTEAWITHOUTORDERWITHEQUALCOL、BYTEAWITHOUTORDERCOL、_BYTEAWITHOUTORDERWITHEQUALCOL和_BYTEAWITHOUTORDERCOL类型创建表。
- RAW(n),n是指字节长度建议值,不会用于校验输入RAW类型的字节长度。
- GaussDB最大支持1GB数据传输,函数返回结果字符串最大支持1GB。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
--创建表。 gaussdb=# CREATE TABLE blob_type_t1 ( BT_COL1 INTEGER, BT_COL2 BLOB, BT_COL3 RAW, BT_COL4 BYTEA ) ; --插入数据。 gaussdb=# INSERT INTO blob_type_t1 VALUES(10,empty_blob(), HEXTORAW('DEADBEEF'),E'\\xDEADBEEF'); --查询表中的数据。 gaussdb=# SELECT * FROM blob_type_t1; bt_col1 | bt_col2 | bt_col3 | bt_col4 ---------+---------+----------+------------ 10 | | DEADBEEF | \xdeadbeef (1 row) --删除表。 gaussdb=# DROP TABLE blob_type_t1; |