QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
4天前
查看: 1545|回复: 0
收起左侧

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

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

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

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

x
在大型数据库管理系统中,ORACLE数据库不论在数据库管理能力还是在安全性方面都是无可非议的。国内企业使用ORACLE数据库的也较多,但是由于ORACLE不同版本的字符集,给数据显示、数据备份、数据转换等实际工作带来了不少麻烦。  
. |3 d: A" N5 ~! O6 t一、字符集参数  
/ y* c5 f' `. q2 X一旦数据库创建后,数据库的字符集是不能改变的。因此,考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。  
1 |; g: S+ H7 c( x# `" M0 Q/ C下面介绍一些与字符集有关的NLS_LANG参数:  / o/ B2 a6 z" A  z  I) @- n
NLS_LANG格式:NLS_LANG=language_territory.charset  + G7 Y" d+ c3 w* {# R
有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如:  
) M4 Y! S8 f* W- ?AMERICAN_AMERICA.US7SCII   5 o* j' r: f4 ^4 S1 I
JPANESE_JAPAN.JA16EUC  % b; A' r* |5 W' K" c3 P
其中:language 指定服务器消息的语言。  3 p# F5 H7 X: l
territory 指定服务器的日期和数字格式。  
! b+ L$ L0 k1 p4 V$ iCharset 指定字符集  
2 o/ N$ r( y  Z7 H  ~) s还有一些子集可以更明确定义NLS_LANG参数:  
% L+ t; a, J: ~$ ~0 yNLS_DATE_FORMAT 缺省的日期格式  
2 R0 V4 D' G6 JNLS_DATE_LANGUAGE 缺省的日期语言  
. J7 V1 H& _7 J2 r. S" S% I4 iNLS_NUMBERIC_CHARACTERS 小数字符和组分隔开  1 t" Y/ n) x/ _; h( N
NLS_CURRENCY 本地货币字符  
( B- Z6 X) q. Y1 N! k3 m* w0 TNLS_ISO_CURRENCY ISO货币字符  
  l# ]* e% T. X2 E4 ?NLS_SORT 字符排序序列   
) v" V4 h5 T7 C3 }. y8 p二、字符集转换  1 z" a6 L- w( o0 r, @8 j" ?
1NLS_LANG参数的修改方法:    M. A# p0 {5 R. ~9 H
1)用SYS用户名登陆ORACLE  2 ?* }9 T: y) b) h, A
2)查看字符集内容   
( ]7 T4 O; |" i6 c: d* s5 a! ?SQL>SELECT * FROM PROPS$;  
9 F; t1 O7 j( N/ M9 f% o  E3)修改相应的字符子集   2 M  `! Z) y9 y0 d( m( r3 e
SQL>UPDATE PROPS$ SET VALUE$=’SIMPLIFIED CHINESE ‘   
* ^" }; P. S* g& I- a& Q! DWHERE NAME=’NLS_LANGUAGE’;  
) y, i# c' J0 k$ ^) O4) 递交COMMIT;  
: |+ a; t4 U; b1 f2NLS_LANG参数的具体应用:  
1 F! ^! G. T+ F( |, z3 P1)采用服务器端/客户端方式,两端字符集不同  ( s% d& D' l  z0 y+ A8 q
修改客户端字符集:  1 W, C% Z' ~; l# Q  s9 z" c3 i
WIN95/WIN98:修改注册表   7 j  Z/ ^$ [5 x' J2 W" J
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG  
2 b& T* r  O7 q- YUNIX:按照1方法,直接进入ORACLE 修改。  : Q# {. X' u6 @$ z+ F5 r, D
2)不同字符集使用EXP/IMP命令  
+ o+ `) N: u$ z按照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 )

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