Oracle 字符集与编码详解

Oracle 字符集与编码详解,第1张

文章目录 1 概述2 字符集3 编码3.1 服务端编码3.2 客户端编码

1 概述 2 字符集
字符集参数1:语言参数2:字符位数参数3:编码格式
AL32UTF8AL:支持所有语言(All Language)32:每个字符最多占用 32 位(4 字节)UTF-8
US7ASCIIUS:美国(United States)7:每个字符占 7 位ASCII
……
字符集描述
char固定长度,不足补空格,最大2000 字节
varchar可变长度,最大 4000 字节数
nvarchar
nvarchar2可变长度,最大 4000 字符数
nvarchar2

以上,Oracle 推荐使用 varchar2(n)
计算字符长度:length(字符)
计算字节长度:lengthb(字节)

3 编码 3.1 服务端编码
-- 方式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

查询截图:

3.2 客户端编码
select t.parameter, 
       t.value 
  from nls_instance_parameters t 
 where t.parameter='NLS_LANGUAGE';

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/2989910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存