Bootstrap

oracle char、varchar2存储字符串长度的问题

在oracle中,char、varchar2存储的字符串长度默认以字节为单位,也就是说varchar2(10) 存储的字符串长度是10个字节,
对于中文字,GBK字符集是一个字符等于两个字节,UTF8是一个字符三个字节,所以varchar2(10)对于GBK能存储4个中文,UTF8能存储3个。
oracle通过设置nls_length_semantics参数可以将默认的字节单位改为字符,
命令为alter system set nls_length_semantics=char scope=both;
修改后,即对于varchar2(10)可以存储10个中文字符。

;