Difference between BYTE and CHAR in column datatypes在Oracle中,之间有什么区别:
和
让我们假设数据库字符集为UTF-8,这是Oracle最新版本中的推荐设置。在这种情况下,某些字符要占用1个以上的字节才能存储在数据库中。
如果将字段定义为
通过将字段定义为 一个正好有11个字节的空间,另一个正好有11个字符的空间。某些字符集(例如Unicode变体)可能每个字符使用一个以上的字节,因此11字节字段的空间可能少于11个字符,具体取决于编码。 另请参见http://www.joelonsoftware.com/articles/Unicode.html 根据系统配置,在BYTES中测量的CHAR大小可能会有所不同。在您的示例中: 结论:1个CHAR不等于1个BYTE。 我不确定,因为我不是Oracle用户,但我认为区别在于使用Unicode(UTF-16 / 32)等多字节字符集时。在这种情况下,11个字节可占不到11个字符。 同样,这些字段类型在重音字符或大小写方面可能会有所不同,例如'binaryField(ete)="été"'可能不匹配,而'charField(ete)="été"'可能会再次匹配(同样不确定Oracle) 。 |