Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 修改Oracle字符集(character set)
【标  题】:修改Oracle字符集(character set)
【关键字】:Oracle,character,set
【来  源】:http://www.blogjava.net/zamber/archive/2006/09/25/71757.html

修改Oracle字符集(character set)

Your Ad Here 修改Oracle字符集(character set) - Mongoose House - BlogJava

Mongoose House

Technical Edition

修改Oracle字符集(character set)

本方法适用于Oracle9i, 10g以及XE. 在10.2.0.1.0下测试无错. 需要注意的是, 使用此方法会破坏数据库中的原有双字节字符. 一种办法是先将数据库导出, 修改完字符集后再导入; 另一种办法就是不管他, 就那样使用. 一般如果是一个测试环境, 像方法二那样就可以了, 但是可能某些表无法读取, 需要注意.
?
sql> shutdown immediate
sql> startup mount
sql> alter system enable restricted session;
sql> alter system set job_queue_processes=0;
sql> alter system set aq_tm_processes=0;
sql> alter database open;
sql> alter database character set <internal_use> AL32UTF8;
sql> shutdown immediate
sql> startup
?
这里的INTERNAL_USE可选,譬如用于不能从父集转到子集的场合,但是这样做会产生乱码,或者表中的数据不能读取。
?
如果数据库中存在CLOB字段,那么就不允许对字符集进行转换,此时可以查看alert<sid>.log文件,把含有CLOB的表trancate.
?
sql> trancate table [table_name];
?
转换后的数据库字符集可以通过以下命令察看.
?
sql> select name, value$ from props$ where name like '%NLS%';
?
导入导出是我们常用的一个数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用。

在导出操作时,非常重要的是客户端的字符集设置,也就是客户端的NLS_LANG设置。
?
NLS_LANG参数由以下部分组成:
?
NLS_LANG=<Language>_<Territory>.<Clients Characterset>
?
NLS_LANG各部分含义如下:
??? Language
??????? -Oracle消息使用的语言?
??????? -日期中月份和日显示
??? Territory?
??????? -货币和数字格式?
??????? -地区和计算星期及日期的习惯
??? Clients Characterset?
??????? -控制客户端应用程序使用的字符集
?
例如
?
E:\>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
E:\>sqlplus "/ as sysdba"
?
或者
?
E:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
E:\>sqlplus "/ as sysdba"
?
Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
?
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
?
xx指存在多个ORACLE_HOME时系统编号。

posted on 2006-09-25 15:02 Mongoose 阅读(203) 评论(1)  编辑 收藏 收藏至365Key

复习排序算法:【上一篇】
受控bean与实体bean的数据传递:【下一篇】
【相关评论】
没有相关评论
【发表评论】
姓名:
邮件:
随机码*
评论*
      
|  首 页  |  版权声明  |  联系我们   |  网站地图  |
CopyRight © 2004-2007 软讯网络 All Rigths Reserved.