Oracle
ORACLE数据库汉字占用几个字节,要根据ORACLE中字符集编码决定,一般情况下,数据库的NLS_CHARACTERSET 为AL32UTF8或UTF8,即一个汉字占用三到四个字节。如果NLS_CHARACTERSET为ZHS16GBK,则一个字符占用两个字节。
查询当前数据库的字符集:
select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';
至于具体情况,可以通过LENGTHB或者VSIZE函数求得是占用字节数。
LENGTH函数求得是占用字符数,LENGTHB或者VSIZE函数求得是占用字节数。
SELECT LENGTH('您好') FROM DUAL;
SELECT LENGTHB('您好') FROM DUAL;
mysql
mysql的varchar与oracle的varchar2是不一样的,前者是用字符做单位的,后者是用字节做单位的。
总结:
oracle 中varchar2(10) 既10个字节3个汉字
mysql 中varchar(10) 既10个字符10个汉字