Oracle varchar的默认类型修改
Oracle列的格式中最常用的就是varchar,但varchar其实也有两种类型,分别是CHAR和BYTE,如果不指定类型,则默认为BYTE。
两者区别在于,可存放非ACSII码值(如汉字)的数量。
例如: 某一列的定义为VARCHAR(6) 或 VARCHAR(6 BYTE)
对于UTF-8编码,一个汉字占3个字节,那这一列只能放2个汉字。
要想放6个汉字,则应定义为VARCHAR(6 CHAR)
查看默认类型可用如下SQL:
select * from nls_instance_parameters where parameter=‘NLS_LENGTH_SEMANTICS’;
默认类型也可以修改,修改方式如下:
alter system set nls_length_semantics=‘CHAR’ scope=both;
本文详细解析了Oracle中VARCHAR类型的两种形式:VARCHAR BYTE与VARCHAR CHAR的区别,尤其关注于非ASCII字符(如汉字)的存储数量差异。通过实例说明如何根据实际需求选择正确的类型,并提供了查询与修改默认类型的SQL语句。
1694

被折叠的 条评论
为什么被折叠?



