用string代替oracle或者DB2的char和varchar,有什么注意的地方

在ArgoDB中,字符串类型支持四种:
(1)String类型
字符串,最大允许4KB
(2)CHAR(size)
定长字符,其生成时会带有一个长度指定数(1和65355之间),用来定义字符串中的最大字符数。如果字符串长度小于定义的长度,会在末尾用空格进行补足。
(3)VARCHAR(size)
可变长度的字符,其生成时会带有一个长度指定数(1和65355之间),用来定义字符串中的最大字符数。如果字符串长度小于定义的长度,不会进行补空格的操作。同Hive中的VARCHAR类型行为一致。
(4)VARCHAR2(size)
可变长度的字符,VARCHAR2生成时会带有一个长度指定数(1和65355之间),用来定义字符串中的最大字符数。同Oracle中的VARCHAR2类型行为一致。

数据溢出的表现:
(1)char/varchar2/varchar类型
在ArgoDB中:定长字符类型,超长进行截断。如果set inceptor.insert.data.format.check=true时,报错。
在Oracle中,直接报错
(3)String类型
在ArgoDB中,直接报错

在Oracle中,varchar源自与标准SQL,varchar2是oracle独有的数据类型。
varchar对于汉字占两个字节,对于数字,英文字符是一个字节。
varchar2一般情况下把所有字符都占两字节处理。具体要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文1个,如果是UTF-8,汉字一般占3个字节,英文还是1个。
--即CHAR(n)、VARCHAR(n)、VARCHAR2(n)中的n指的是字节长度。
而在ArgoDB中CHAR(n)、VARCHAR(n)、VARCHAR2(n)中的n的长度指的是unicode编码的长度,而不是字节长度,即n表示可以存储多少个字符。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值