场景:MySql和Oracle中的数据库。两者都有相同的表和相同的列。在其中一个表中,我有一个列,'FullName'。
使用的Oracle数据类型是VarChar2(64)。 使用的MySql数据类型是VarChar(64)。
支持Unicode字符UTF 8用作默认字符集。
我在Oracle中遇到错误,其中“对于列来说价值太大”,而在MySql中它可以正常工作。
我想知道,这两个dbase有什么区别?
注意:对于UTF 8编码的日语字符需要3个字节。
先谢谢。
帕
答案 0 :(得分:2)
它在MYSQL中工作的原因是因为MYSQL中的VarChar(64)意味着64个字符,默认字符是UTF8。
对于oracle它没有用,虽然Oracle的默认字符集是UTF8。原因是VarChar2(64),表示64字节。对于日语,UTF 8编码中的字符占用单个字符的3个字节。因此错误“值对于列来说太大了。”
感谢David Sykes提供以下链接中的解决方案。