QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
查看: 1397|回复: 0
收起左侧

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

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

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

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

x
在大型数据库管理系统中,ORACLE数据库不论在数据库管理能力还是在安全性方面都是无可非议的。国内企业使用ORACLE数据库的也较多,但是由于ORACLE不同版本的字符集,给数据显示、数据备份、数据转换等实际工作带来了不少麻烦。  5 V$ f  m4 p0 v8 q+ y
一、字符集参数  
5 p2 L, @  w6 {; |" b一旦数据库创建后,数据库的字符集是不能改变的。因此,考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。  + p, S, F, w5 Z, e4 i; Y+ g
下面介绍一些与字符集有关的NLS_LANG参数:  ! ?: v; P+ ~( U. C" e( S& b0 S
NLS_LANG格式:NLS_LANG=language_territory.charset  ) C1 g* k9 s! m1 t. L: S
有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如:  ! E' O5 |2 i, W5 y# P7 I, i
AMERICAN_AMERICA.US7SCII   " ~/ u- a6 d5 u- F4 s( n9 F  s
JPANESE_JAPAN.JA16EUC  
% @: i2 w0 L4 X其中:language 指定服务器消息的语言。  
0 b" y+ R" l  iterritory 指定服务器的日期和数字格式。  $ a- h2 F* `  m  A( v6 i: C
Charset 指定字符集  . b; S! W0 k. v# ?0 k/ o  l7 C
还有一些子集可以更明确定义NLS_LANG参数:  
- K# ~) }' ?- }4 gNLS_DATE_FORMAT 缺省的日期格式  $ q. T2 Y/ }" d4 Q& e
NLS_DATE_LANGUAGE 缺省的日期语言  
! E" @; o$ ^( S- s8 JNLS_NUMBERIC_CHARACTERS 小数字符和组分隔开  7 I+ w5 ~1 |; Q8 {* x* l
NLS_CURRENCY 本地货币字符  
5 G/ ^4 z: x$ j% G2 d6 p% a- CNLS_ISO_CURRENCY ISO货币字符  - m! j; L& A& d7 T1 R
NLS_SORT 字符排序序列   ' H4 U- t: b8 [  Z+ ?4 I. S( N* X
二、字符集转换  # I, I& C6 [3 o3 ~3 E3 V1 [
1NLS_LANG参数的修改方法:  ' w2 u4 N. b, C+ |! p2 i& a! g
1)用SYS用户名登陆ORACLE  
( R' [6 d+ U( T3 Z; W5 i9 r4 O2)查看字符集内容   ; E7 l3 B  N0 E7 X" e( R4 c/ R
SQL>SELECT * FROM PROPS$;  0 w5 A, ^  L9 C" F/ E7 {" W
3)修改相应的字符子集   5 c2 S- v* F8 L. X. T; S
SQL>UPDATE PROPS$ SET VALUE$=’SIMPLIFIED CHINESE ‘   * @' _' F5 p6 [% R0 X; ~1 v$ H! k
WHERE NAME=’NLS_LANGUAGE’;  # }- S2 j7 \4 Q) w
4) 递交COMMIT;  
7 [* z$ g% ^( D, P' L2NLS_LANG参数的具体应用:  
& C/ Y8 z* n6 J6 Z1)采用服务器端/客户端方式,两端字符集不同  % t8 E; ~1 ^' H1 d. n5 `
修改客户端字符集:  
1 w, Y5 }( H6 LWIN95/WIN98:修改注册表   7 T2 z/ u; Q* K( t+ q7 r5 _
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG  0 k' [8 N; t3 d; b/ C5 M( x
UNIX:按照1方法,直接进入ORACLE 修改。    {$ z$ X9 t0 Z& s
2)不同字符集使用EXP/IMP命令  
1 s# f" l; _/ ]2 W8 H6 l按照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备13008828号-1 )

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