字符集
/@q%ojo&Q:p0DpY.^
e0y0字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包括关系,如US7ASCII就是ZHS16GBK的子集, 从US7ASCII到ZHS16GBK不会有数据解释上的问题,不会有数据丢失,Oracle对这种问题也要求从子集到超集的导出受支持,反之不行。在所有的字符集中UTF8应该是最大,因为它基于unicode,双字节保存字符(也因此在存储空间上占用更多)。
`E:?
kA0}?C I0ITPUB个人空间7D:y&?7UU,y)sBsD一旦
数据库创建后,数据库的字符集是不能改变的。因此,在设计和
安装之初考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。
ITPUB个人空间3a5u;]3oJoITPUB个人空间ce*K0FANLS_LANG格式:
ITPUB个人空间([xL.{Btu|"IP?NLS_LANG = language_territory.charset
ITPUB个人空间"V~+LvS;K6Y2V)R'q有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:
9aBs8N A%N(}IY0language 指定
服务器消息的语言。
ITPUB个人空间8w~
[E,a
fHXhdterritory 指定服务器的日期和数字格式。
JM#NPi2xX0charset 指定字符集。
S[cN|VL0n"id#x7vE0例如:
1VO!H
BS4vM0AMERICAN_AMERICA.US7SCII
ITPUB个人空间aUy%X)_5EtU(sD%J({AMERICAN_AMERICA.ZHS16GBK
U:ea#?1qF0d9{,lc+E*xt Ay4Y J%{0还有一些子集可以更明确定义NLS_LANG参数:
-}'T1Hr-F0DICT.BASE 数据字典基本 表版本
;tdh8Y4AhH9C0DBTIMEZONE 数据库时区
fcI!Fc~{0NLS_LANGUAGE 语言
ITPUB个人空间6[$A3L+H/o;`1AU |NLS_TERRITORY 地域
N7fS8@;]r%z0NLS_CURRENCY 本地货币字符
ITPUB个人空间/w
wXC/B @NLS_ISO_CURRENCY ISO货币字符
ITPUB个人空间QvjK,PPS6|NLS_NUMERIC_CHARACTERS 小数字符和组 分隔开
x2wX3F:\]0NLS_CHARACTERSET 字符集
ITPUB个人空间$UKIf)s&W8IX
iNLS_CALENDAR 日历系统
"D"DGZC-la0NLS_DATE_FORMAT 缺省的日期格式
eI*sT'|&@^0NLS_DATE_LANGUAGE 缺省的日期语言
ITPUB个人空间](D|C'~*r"Y6Q"qNLS_SORT 字符排序序列
ITPUB个人空间;^r2oW;p4uNLS_TIME_FORMAT 时间格式
&CV#c+Ud{P0NLS_TIMESTAMP_FORMAT 时间戳格式
;?!?!H*^
\t:O0……
g-ftEO*n9X$_FZH0ITPUB个人空间\/r8K.g"v
W\:n查看可选的数据库字符集:
p#m
[;z0j4_0col nls_charset_id for 99999
.sw{_&b#}7v
n8jd:^0col nls_charset_name for a35
ITPUB个人空间ZBFW g)x8w*V
Q?col hex_id for a5
&Hq+xk#Q0?T9A
k0select nls_charset_id(value) nls_charset_id,value nls_charset_name,to_char(nls_charset_id (value),'xxxx') hex_id
0^B/H`A|)]$F0from v$nls_valid_values
ITPUB个人空间y+c
AF&o/~Qwhere parameter = 'CHARACTERSET';
ITPUB个人空间0RC2c#W6^{ITPUB个人空间%?*b6P6@\R查看当前数据库字符集配置:
1S6K!n2xw
G2IF;c)H0col parameter for a35
8wT
w4T|nlz;m0col value for a35
L4W/S qR+Cq?0select * from v$nls_parameters;
ITPUB个人空间XA2pQ2`5^_0fq@或者:
ITPUB个人空间bv8x8c4i8FNi7h ZUselect * from sys.props$;
ITPUB个人空间(Z`R:}
c9j`(DD7~(lD7Q0