QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
2天前
查看: 1544|回复: 0
收起左侧

[分享] 巧妙转换ORACLE数据库字符集

[复制链接]
发表于 2006-11-7 13:54:57 | 显示全部楼层 |阅读模式 来自: 中国陕西西安

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在大型数据库管理系统中,ORACLE数据库不论在数据库管理能力还是在安全性方面都是无可非议的。国内企业使用ORACLE数据库的也较多,但是由于ORACLE不同版本的字符集,给数据显示、数据备份、数据转换等实际工作带来了不少麻烦。  
' a7 d, j1 |7 {# _* J一、字符集参数  
1 X. V& M7 C2 W1 t8 V' x一旦数据库创建后,数据库的字符集是不能改变的。因此,考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。  " B1 n+ \& S# |  ^
下面介绍一些与字符集有关的NLS_LANG参数:  
5 P0 R+ P5 W5 M( \' j8 INLS_LANG格式:NLS_LANG=language_territory.charset  - L, E6 K( k  b& b" k( W
有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如:  
, M% R2 z! F! N+ E  @8 YAMERICAN_AMERICA.US7SCII   
4 ^# }: K* j  p3 K  z( n% R( [6 [JPANESE_JAPAN.JA16EUC  : T, m& p7 P# c, [2 X1 d
其中:language 指定服务器消息的语言。  
  ?7 G- K( O: E8 Tterritory 指定服务器的日期和数字格式。  
$ s+ R& Q# x5 e; CCharset 指定字符集  
7 ]3 x- Q0 U% G8 S/ g还有一些子集可以更明确定义NLS_LANG参数:  3 I& l% W( w' |0 M4 ]
NLS_DATE_FORMAT 缺省的日期格式  
; c8 ^) y0 G% g. s! G% \NLS_DATE_LANGUAGE 缺省的日期语言  
, y5 Q! r5 G# b# p$ iNLS_NUMBERIC_CHARACTERS 小数字符和组分隔开  
; g/ k3 I% C+ H# Q, fNLS_CURRENCY 本地货币字符  
' c2 I1 Y$ s& q. INLS_ISO_CURRENCY ISO货币字符  
0 k" k' o) h: h. h1 @: {! v' _* j( lNLS_SORT 字符排序序列   
" r2 @+ K  r8 G8 g$ q" H二、字符集转换  
' E1 D8 Z- }8 ~* f( X: A! V1NLS_LANG参数的修改方法:  
% b6 v$ j3 T6 k1 y! z2 Y1)用SYS用户名登陆ORACLE  9 Z4 [3 U" v' Q6 Q, y
2)查看字符集内容   4 F( n& ?# k$ c" v6 M: J0 q- i8 w
SQL>SELECT * FROM PROPS$;  - W* _2 F7 ]" K- s- ^  Q- s! }
3)修改相应的字符子集   
$ ]( v: b( n" U- c9 g4 t( s; [3 S9 rSQL>UPDATE PROPS$ SET VALUE$=’SIMPLIFIED CHINESE ‘   ) M& C4 v% f4 s- o
WHERE NAME=’NLS_LANGUAGE’;  
6 Q4 W+ z- D/ T: S4) 递交COMMIT;  
0 U; u0 U) ~3 d: n0 G3 U2NLS_LANG参数的具体应用:  ) @4 y' B5 g* [7 h% h
1)采用服务器端/客户端方式,两端字符集不同  ) c: Q4 u  e3 w( R
修改客户端字符集:  7 K+ |5 O5 G6 O5 ]* }/ S+ U3 K
WIN95/WIN98:修改注册表   9 R1 P' n8 y4 Y5 C1 t- v
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG  $ [+ b9 {  A9 n- f
UNIX:按照1方法,直接进入ORACLE 修改。  
: w2 H% a* D: |; U# T/ |2)不同字符集使用EXP/IMP命令  
+ M; B: d& ^+ X' H+ G按照1方法,修改IMP端的字符集设置,如果是WIN98/WIN95系统,还必须修改注册表。注意:NLS_LANG三个子集的参数必须一致。另外,如果字符集单双字节设置不同,则不能通过修改字符集进行转换。可以使用其他方式,不修改字符集,进行ORACLE数据库搬移,如数据量比较小,可以使用SQLLOAD命令,通过文本文件转换;使用其他数据库软件(ACCESS,FOXPRO等)转换。  
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表