Oracle varchar2(Byte)与varchar2(Char)

来源:互联网 发布:java filter过滤器顺序 编辑:程序博客网 时间:2024/05/15 12:03

    今天客户出现了一个问题:一个字段存在数据库中时,显示字段过长。经过查看log,发现数据库中,该字段的类型是varchar2(30Byte),修改成 varchar2(30Char)时,问题解决了。

    产生的原因:

    同样的一个创建table的语句:

如果在Sql Developer中执行,那么默认创建的varchar2类型为varchar2(30Byte);

而在后台执行sql脚本的时候,创建的varchar2类型为varchar2(30Char).

当存入英文字母的时候,两者并没有什么不同,但是存入土耳其字符时,发现一个土耳其字符会占用2个byte。

这样导致用sql developer创建的TEST_FIELD字段,仅仅有15个字符的空间,所以出现了字符过长的问题。

 

关于varchar2的更详细的内容,周末的时候,研究一下,再补充。这几天工作太忙,实在没时间,暂时先记下来

原创粉丝点击