字符集 | 参数1:语言 | 参数2:字符位数 | 参数3:编码格式 |
---|---|---|---|
AL32UTF8 | AL:支持所有语言(All Language) | 32:每个字符最多占用 32 位(4 字节) | UTF-8 |
US7ASCII | US:美国(United States) | 7:每个字符占 7 位 | ASCII |
…… |
字符集 | 描述 |
---|---|
char | 固定长度,不足补空格,最大2000 字节 |
varchar | 可变长度,最大 4000 字节数 |
nvarchar | |
nvarchar2 | 可变长度,最大 4000 字符数 |
nvarchar2 |
以上,Oracle 推荐使用
varchar2(n)
计算字符长度:length(字符)
计算字节长度:lengthb(字节)
-- 方式1:直接查询
select t.parameter,
t.value -- AL32UTF8、ZHS16GBK 等
from nls_database_parameters t
where parameter = 'NLS_CHARACTERSET';
-- 方式2:带注释
select t.name,
t.value$,
t.comment$
from sys.props$ t
where t.name = 'NLS_CHARACTERSET';
-- 方式3:上下文环境
select userenv('language') from dual;
-- 补充
'NLS_CHARACTERSET': 字符集,如:char、varchar2、long、clob
'NLS_NCHAR_CHARACTERSET': 国家字符集,如:nchar、nvarchar2、nclob
UTF-8 字节长度:lengthb('a') = 1, lengthb('我') = 3
GBK 字节长度:lengthb('a') = 1, lengthb('我') = 2
查询截图:
select t.parameter,
t.value
from nls_instance_parameters t
where t.parameter='NLS_LANGUAGE';