数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

巧妙转换ORACLE数据库字符集


发布日期:2022年11月15日
 
巧妙转换ORACLE数据库字符集

在大型数据库管理系统中ORACLE数据库不论在数据库管理能力还是在安全性方面都是无可非议的国内企业使用ORACLE数据库的也较多但是由于ORACLE不同版本的字符集给数据显示数据备份数据转换等实际工作带来了不少麻烦

字符集参数

一旦数据库创建后数据库的字符集是不能改变的因此考虑使用哪一种字符集是十分重要的数据库字符集应该是操作系统本地字符集的一个超集存取数据库的客户使用的字符集将决定选择哪一个超集即数据库字符集应该是所有客户字符集的超集

下面介绍一些与字符集有关的NLS_LANG参数

NLS_LANG格式NLS_LANG=language_territorycharset

有三个组成部分(语言地域和字符集)每个组成成分控制了NLS子集的特性三个成分可以任意组合例如

AMERICAN_AMERICAUSSCII

JPANESE_JAPANJAEUC

其中language 指定服务器消息的语言

territory 指定服务器的日期和数字格式

Charset 指定字符集

还有一些子集可以更明确定义NLS_LANG参数

NLS_DATE_FORMAT 缺省的日期格式

NLS_DATE_LANGUAGE 缺省的日期语言

NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开

NLS_CURRENCY 本地货币字符

NLS_ISO_CURRENCY ISO货币字符

NLS_SORT 字符排序序列

字符集转换

NLS_LANG参数的修改方法

)用SYS用户名登陆ORACLE

)查看字符集内容

SQL>SELECT * FROM PROPS$;

)修改相应的字符子集

SQL>UPDATE PROPS$ SET VALUE$=SIMPLIFIED CHINESE

WHERE NAME=NLS_LANGUAGE;

) 递交COMMIT;

NLS_LANG参数的具体应用

)采用服务器端/客户端方式两端字符集不同

修改客户端字符集

WIN/WIN修改注册表

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG

UNIX按照方法直接进入ORACLE 修改

)不同字符集使用EXP/IMP命令

按照方法修改IMP端的字符集设置如果是WIN/WIN系统还必须修改注册表注意NLS_LANG三个子集的参数必须一致另外如果字符集单双字节设置不同则不能通过修改字符集进行转换可以使用其他方式不修改字符集进行ORACLE数据库搬移如数据量比较小可以使用SQLLOAD命令通过文本文件转换使用其他数据库软件(ACCESSFOXPRO等)转换

上一篇:在Windows系统下管理Oracle9i服务

下一篇:数据库手册:Oracle维护常用SQL语句二