varchar2(byte) 存储的是字节。
varchar2(char) 存储的是字符。
比如:varchar2(2 byte) 最多可以存储2个字节;varchar2(2 char) 最多可以存储2个字符。
当数据库字符集为 AL32UTF8 时,一个汉字是一个字符,一个汉字占3个字节,varchar2(2 byte) 一个汉字也不能存,varchar2(2 char) 能存2个汉字。
当数据库字符集为 ZHS16GBK时,一个汉字是一个字符,一个汉字占2个字节,varchar2(2 byte) 能存1个汉字,varchar2(2 char) 能存2个汉字。
那么默认情况下,在指定数据类型为 varchar2(2) 时是什么情况呢?
这跟数据库中的一个参数有关: NLS_LENGTH_SEMANTICS
select name,value from v$parameter where name=\'nls_length_semantics\';
NAME VALUE
------------------------------ ------------------------------
nls_length_semantics BYTE
如果该参数的值为 byte ,则 varchar2(2) 等同于 varchar2(2 byte),这是默认情况。
继续阅读与本文标签相同的文章
-
曾经风靡一时的360安全卫士为什么如今没落了?
2026-05-18栏目: 教程
-
用C语言编程,如何节省存储空间?
2026-05-18栏目: 教程
-
三元牛奶,的优势在哪里?
2026-05-18栏目: 教程
-
常浏览“成人网站”要留意了,有这2种反应,请立马关闭
2026-05-18栏目: 教程
-
美国SpaceX公司计划向太空发射4.2万枚通信卫星
2026-05-18栏目: 教程
