varchar是标准sql里面的。 varchar2是oracle提供的独有的数据类型。
varchar对于汉字占两个字节,对于数字,英文字符是一个字节,占的内存小,varchar2一般情况下把所有字符都占两字节处理。具体要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文1个,如果是UTF-8,汉字一般占3个字节,英文还是1个。
varchar对空串不处理,varchar2将空串当做null来处理。
varchar存放固定长度的字符串,最大长度是2000,varchar2是存放可变长度的字符串,最大长度是4000.
如果是要更换不同的数据库,例如mysql,那么就用varchar,如果就用oracle,那么用varchar2比较好一点。
https://www.cnblogs.com/anningkang/p/oracle.html
网上资料说:
varchar2是oracle提供的独特的数据类型oracle保证在任何版本中该数据类型向上和向下兼容但不保证varchar,
这是因为varchar是标准sql提供的数据类型有可能随着sql标准的变化而改变
varchar2和varchar的目前没有区别,不过ocacle以后的版本就不支持varchar类型,
如果想新版本的数据库兼容就不要用varchar,如果想和其它数据库兼容就不要用varchar2
https://cloud.tencent.com/developer/news/424322