GBase 8c V3.0.0数据类型——字符类型

字符类型

GBase 8c支持的字符类型请参见下表。字符串操作符和相关的内置函数请参见5.3字符处理函数和操作符

名称

描述

存储空间

CHAR(n) CHARACTER(n) NCHAR(n)

定长字符串,不足补空格。n是指字节长度,如不带精度n,默认精度为1。

最大为10MB。

VARCHAR(n)

CHARACTER VARYING(n)

变长字符串。PG兼容模式下,n是字符长度。其他兼容模式下,n指代字节长度。

最大为10MB。

VARCHAR2(n)

变长字符串。是VARCHAR(n)类型的别名。n指代字节长度。

最大为10MB。

NVARCHAR(n)

变长字符串。是NVARCHAR2(n)类型的别名。n指代字符长度。

最大为10MB。

NVARCHAR2(n)

变长字符串。n指代字符长度。

最大为10MB。

TEXT

变长字符串。

最大为1GB-1, 但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此TEXT类型最大大小可能小于1GB-1。

CLOB

文本大对象。是TEXT类型的别名。

最大为4GB-1, 但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于4GB-1),因此CLOB类型最大大小可能小于4GB-1。

l 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-1字节,主要受列的控制头信息、元组控制头信息以及元组中是否存在NULL字段等影响。

l NCHAR为bpchar类型的别名,NCHAR(n)为VARCHAR(n)类型的别名。

l 超过1GB的clob只有dbe_lob相关高级包支持,系统函数不支持大于1GBclob。

l 在GBase 8c里另外还有两种定长字符类型。在下表里显示特殊字符类型。name类型只用在内部 系统表中,作为存储标识符,不建议普通用户使用。该类型长度当前定为64字节(63可用字符加结束符)。类型“char”只用了一个字节的存储空间。他在系统内部主要用于系统表,主要作为简单化的枚举类型使用。

名称

描述

存储空间

name

用于对象名的内部类型。

64字节。

"char"

单字节内部类型。

1字节。

示例

--创建表。

gbase=# CREATE TABLE char_type_t1 (CT_COL1 CHARACTER(4));

CREATE TABLE

--插入数据。

gbase=# INSERT INTO char_type_t1 VALUES ('ok');

INSERT 0 1

--查询表中的数据。

gbase=# SELECT ct_col1, char_length(ct_col1) FROM char_type_t1;

ct_col1 | char_length

---------+-------------

ok   | 4

(1 row) 

--删除表。

gbase=# DROP TABLE char_type_t1;

DROP TABLE

--创建表。

gbase=# CREATE TABLE char_type_t2 (CT_COL1 VARCHAR(5));

--插入数据。

gbase=# INSERT INTO char_type_t2 VALUES ('ok');

INSERT 0 1

gbase=# INSERT INTO char_type_t2 VALUES ('good');

INSERT 0 1

 

--插入的数据长度超过类型规定的长度报错。

gbase=# INSERT INTO char_type_t2 VALUES ('too long');

ERROR:  value too long for type character varying(5)

CONTEXT:  referenced column: ct_col1

--明确类型的长度,超过数据类型长度后会自动截断。

gbase=# INSERT INTO char_type_t2 VALUES ('too long'::varchar(5));

INSERT 0 1

--查询数据。

gbase=# SELECT ct_col1, char_length(ct_col1) FROM char_type_t2; 

ct_col1 | char_length

---------+-------------

 ok      |       2

 good    |       4

 too l    |       5

(3 rows)

--删除数据。

gbase=# DROP TABLE char_type_t2;

DROP TABLE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值