在做ETL的时候,经常有一些字段提示长度不够。今天偶抓住一张表来分析了一下,后来发现中文在不同字符集所占用的字节是不同的。详细如下:
源数据库字符集为: ZHS16GBK,数据仓库的字符集为:UTF-8
查询字符集:SELECT * FROM DATABASE_PROPERTIES WHERE property_name = 'NLS_CHARACTERSET'
源数据库:(ZHS16GBK)





目标数据库:(UTF8)





做了一个表测试了一下:
在源数据库里:








在目标数据仓库里:










很显然中文在UTF8里占3个字节,ZHK里占2个字节。