我正在检查Google的char与varchar2之间的区别。在此link中,我遇到了领先长度一词。那里写着
假设您将字符串“ ORATABLE”存储在CHAR(20)字段和VARCHAR2(20)字段中。 CHAR字段将使用22个字节(前导长度为2个字节)。 VARCHAR2字段将仅使用10个字节(字符串为8个字节,前导长度为2个字节)。
Q1 :如果字符串为8个字符(1个字节= 1个字符),那么char字段将如何使用22个字节?
第二季度是什么?为什么会占用2个字节?
答案 0 :(得分:2)
CHAR()
数据类型用字符填充字符串。因此,对于'ORATABLE'
,它看起来像:
'ORATABLE '
12345678901234567890
“前导长度”是开头的两个字节,用于指定字符串的长度。因为一个字节不够,所以需要两个字节。两个字节的最大长度为65,535个单位;一个字节最多只能允许255个长度。
要点CHAR()
和VARCHAR2()
使用相同的内部格式,因此没有理由起诉CHAR()
。就我个人而言,我只会将其用于固定长度的代码,例如ISO国家/地区代码或美国的社会保险号。