Answers:
让我们假设数据库字符集为UTF-8,这是最新版本的Oracle中推荐的设置。在这种情况下,某些字符要占用1个以上的字节才能存储在数据库中。
如果将字段定义为VARCHAR2(11 BYTE)
,则Oracle最多可以使用11个字节来存储,但是实际上您可能无法在该字段中存储11个字符,因为其中一些字符要占用一个以上的字节来存储,例如非英语字符。
通过VARCHAR2(11 CHAR)
告诉Oracle 定义字段,无论存储每个字符需要多少字节,它都可以使用足够的空间来存储11个字符。一个字符最多需要4个字节。
一个正好有11个字节的空间,另一个正好有11个字符的空间。某些字符集(例如Unicode变体)每个字符可能使用一个以上的字节,因此11个字节的字段可能少于11个字符的空间取决于编码。
VARCHAR2
。VARCHAR2(4000 CHAR)
如果某些字符需要多个字节的存储空间,则声明a 将允许少于4000个字符。