今天有幸看到这篇文章:http://klyuan.iteye.com/blog/220760
让我知道oracle的数据类型当中还是有许多东西我不知道. 感觉一下子收获了不少东西。
1、在定义varchar2数据类型的时候,可以指定单位是字符还是字节
比如 varchar2(10 char) 表示最大能存储10个字节
varchar2(10 byte) 表示最大能存储10个字符,
至于一个字符到底占多少个字节,这就要看数据库系统的字符集了。
如果varchar2(10)这样定义的话,这样默认是存储10个字节。(如果在定义类型时,不指定单位。默认是按byte,即以字节为单位的。 )
查看当前系统采用的字符集
SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
PARAMETER VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_CHARACTERSET ZHS16GBK
如果是ZHS16GBK的话,一个汉字就占用两个字节,如果要存储10个汉字的话,那么可以这样定义数据类型:Create table test_varchar(col_char varchar2(10 char));