|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
在大型数据库管理系统中,ORACLE数据库不论在数据库管理能力还是在安全性方面都是无可非议的。国内企业使用ORACLE数据库的也较多,但是由于ORACLE不同版本的字符集,给数据显示、数据备份、数据转换等实际工作带来了不少麻烦。
4 n# B5 |4 K! F1 P2 x! n一、字符集参数
/ S+ d, E0 e5 X$ A9 F+ o* ~ H7 o$ B一旦数据库创建后,数据库的字符集是不能改变的。因此,考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。 0 d ~4 C2 ~6 \5 g9 k. q2 k6 z) `
下面介绍一些与字符集有关的NLS_LANG参数: / R, |- n3 |& Z% n4 m% k9 C
NLS_LANG格式:NLS_LANG=language_territory.charset
) C/ ]8 v! y4 [5 k4 K9 K1 Y. L有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如: * ~, y& O0 \' O, T) r
AMERICAN_AMERICA.US7SCII 2 g; R3 M8 G0 m: f4 j
JPANESE_JAPAN.JA16EUC 0 z& Q8 y6 ]! d$ e9 G; | \
其中:language 指定服务器消息的语言。 * u+ p) l& N7 b
territory 指定服务器的日期和数字格式。
# X& }& V* I/ f9 GCharset 指定字符集
' g0 m: d- L3 C1 c4 o' G! e. ]还有一些子集可以更明确定义NLS_LANG参数:
9 H% y. B1 K1 i! N; `NLS_DATE_FORMAT 缺省的日期格式 [8 J7 \# q$ E$ C
NLS_DATE_LANGUAGE 缺省的日期语言
6 M- k, h( _0 DNLS_NUMBERIC_CHARACTERS 小数字符和组分隔开 : @; y. v/ a' p" G# B/ u: F2 K
NLS_CURRENCY 本地货币字符
* X& y! d( k4 mNLS_ISO_CURRENCY ISO货币字符 ; [3 Y/ n- i7 T2 s" s
NLS_SORT 字符排序序列 5 Z$ i/ b- I1 Z! ^
二、字符集转换 : L2 t" u" J) p
1、NLS_LANG参数的修改方法:
6 b+ z* a# @' L) {/ j1)用SYS用户名登陆ORACLE。
+ ?/ C1 J; y9 J& o- l" g; G2)查看字符集内容 ( |9 `( [/ y" n+ m- ?
SQL>SELECT * FROM PROPS$;
' {9 w5 Y3 s3 _# p3)修改相应的字符子集
+ Q) D7 D+ Y) r/ Z# O2 gSQL>UPDATE PROPS$ SET VALUE$=’SIMPLIFIED CHINESE ‘ $ |- X6 W7 l; P i2 H
WHERE NAME=’NLS_LANGUAGE’;
" ]! ?0 }4 M! r5 e4) 递交COMMIT;
. @1 o( q% h2 g4 \2、NLS_LANG参数的具体应用:
, k8 S; J1 [9 J8 n4 u& r1)采用服务器端/客户端方式,两端字符集不同
* I1 t; ~8 t2 d: E" y0 o, k修改客户端字符集: 6 @1 K3 v- _" M- i- a8 ^
WIN95/WIN98:修改注册表 . k) I3 Y1 F( v0 a/ U" O
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG $ p. b) j: c3 l( l+ F
UNIX:按照1方法,直接进入ORACLE 修改。 ! Y2 d! t! B$ @
2)不同字符集使用EXP/IMP命令
3 B$ f G5 U& F按照1方法,修改IMP端的字符集设置,如果是WIN98/WIN95系统,还必须修改注册表。注意:NLS_LANG三个子集的参数必须一致。另外,如果字符集单双字节设置不同,则不能通过修改字符集进行转换。可以使用其他方式,不修改字符集,进行ORACLE数据库搬移,如数据量比较小,可以使用SQLLOAD命令,通过文本文件转换;使用其他数据库软件(ACCESS,FOXPRO等)转换。 |
|