解决windows下oracle字符显示乱码问题

69 篇文章 0 订阅
55 篇文章 1 订阅
解决windows下oracle字符显示乱码问题


1.修改DOS字符集:



修改DOS字符集,可以防止DBCA,NETCA这些软件在运行时报错,在注册表修改
HKEY_CURRENT_USER/Console/%SystemRoot%_system32_cmd.exe 


再双击右边CodePage选项将数值将fde9改为十六进制3a8或十进制"936 
十六进制"000003a8"或十进制"936",表示“936 (ANSI/OEM - 简体中文 GBK)”
十六进制"000001b5"或十进制"437",表示“437 (OEM - 美国)”。


2.修改服务器端Language和Territory值:



因为DML的脚本是以中文格式做插入的,脚本不能动,所以需要修改服务器端,不然会报 ORA-01843.


查看:
SQL> select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from
  2  (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
  3  (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
  4  (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;


TAB1.AA||'_'||TAB2.BB||'.'||TAB3.CC
-----------------------------------------------------------------------------


AMERICAN_AMERICA.ZHS16GBK


修改:


UPDATE sys.PROPS$ SET VALUE$='SIMPLIFIED CHINESE'  where name='NLS_LANGUAGE';
UPDATE sys.PROPS$ SET VALUE$='CHINA'  where name='NLS_ISO_CURRENCY';


再次查看:
SQL> select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from
  2  (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
  3  (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
  4  (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;


TAB1.AA||'_'||TAB2.BB||'.'||TAB3.CC
-------------------------------------------------------------------------------


SIMPLIFIED CHINESE_CHINA.ZHS16GBK




3.修改NLS_LANG



注册表修改或临时设环境变量。


注册表:报到KEY_OraDb11g_home1
修改NLS_LANG的值 :SIMPLIFIED CHINESE_CHINA.ZHS16GBK






注:关于NLS_LANG的说明:

(下面来自网络,地址忘了)
影响Oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
Language: 指定服务器消息的语言, 影响提示信息是中文还是英文
Territory: 指定服务器的日期和数字格式,
Charset:  指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值