ORACLE 9I数据库字符集是BIG5,保存简体字出现乱码?请教如何解决?
解决方案 »
- Oracle10g导出,导入到Oracle11g
- Oracle 自定义存储过程JAVA调用
- 如何实现这样的分级汇总查询???
- 执行计划的巨大差异
- 寻找Oracle Spatial的学习资料,重分酬谢
- 创建运行作业时报错,为什么?在线等
- 怎样在C++程序中判断oracle数据库的可用性还有指定数据文件的读写次数?
- 多cpu的使用
- 在VB.net中如何去除从Oracle数据库中取出的Varchar字符串的空格?
- 有没有什么方法能让commit不把游标关闭,请各位大侠帮忙
- 关于oracle的sql文优化面试题。各位专家请指教
- oracle-instantclient 在linux系统解包后 怎么应用,请求指点
http://topic.csdn.net/u/20090111/12/9eb8eacd-17e7-4474-9857-0c4282a2ddcb.html一、字符集参数
一旦数据库创建后,数据库的字符集是不能改变的。因此,考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。
下面介绍一些与字符集有关的NLS_LANG参数:
NLS_LANG格式:NLS_LANG=language_territory.charset
有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如:
AMERICAN_AMERICA.US7SCII
JPANESE_JAPAN.JA16EUC
其中:language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
Charset 指定字符集
还有一些子集可以更明确定义NLS_LANG参数:
NLS_DATE_FORMAT 缺省的日期格式
NLS_DATE_LANGUAGE 缺省的日期语言
NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开
NLS_CURRENCY 本地货币字符
NLS_ISO_CURRENCY ISO货币字符
NLS_SORT 字符排序序列
二、字符集转换
1、NLS_LANG参数的修改方法:
1)用SYS用户名登陆ORACLE。
2)查看字符集内容
SQL>SELECT * FROM PROPS$;
3)修改相应的字符子集
SQL>UPDATE PROPS$ SET VALUE$=’SIMPLIFIED CHINESE ‘
WHERE NAME=’NLS_LANGUAGE’;
4) 递交COMMIT;
2、NLS_LANG参数的具体应用:
1)采用服务器端/客户端方式,两端字符集不同
修改客户端字符集:
WIN:修改注册表
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG
UNIX:按照1方法,直接进入ORACLE 修改。
2)不同字符集使用EXP/IMP命令
按照1方法,修改IMP端的字符集设置,如果是WIN系统,还必须修改注册表。注意:NLS_LANG三个子集的参数必须一致。另外,如果字符集单双字节设置不同,则不能通过修改字符集进行转换。可以使用其他方式,不修改字符集,进行ORACLE数据库搬移,如数据量比较小,可以使用SQLLOAD命令,通过文本文件转换;使用其他数据库软件(ACCESS,FOXPRO等)转换。
http://topic.csdn.net/t/20030710/20/2014176.html