修改服务器编码和oracle编码,oracle 11g 查看服务端/客户端编码及修改db编码

oracle 如果server与client端的编码不一致,asp.net读取db记录显示时,就可能出现乱码

查看oracle服务端编码:select * from sys.nls_database_parameters;查看client编码:select * from sys.nls_session_parameters; 如果二端编码不一致,可以修改客户端的编码:

regedit打开注册表:

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1

修改NLS_LANG的值,一般为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK (简体中文编码,这也是oracle安装时默认的编码),如果服务端是utf8,该值需要修改成SIMPLIFIED CHINESE_CHINA.AL32UTF8

tips:如果不记得字符串,也可以通过在服务端运行 select userenv('language') from dual; 查看

此外,如果使用pl/sql devloper,该软件启动时,也会检测客户端与服务端之间的编码差异,如果发现不同,将弹出下面的对话框:

AAffA0nNPuCLAAAAAElFTkSuQmCC

要想去掉这个提示:修改HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_client_x86下NLS_LANG的値即可

(注:经本人实际测试发现,修改了注册表后,虽然这个提示框不再弹出,但有可能导致oracle自带的sqlplus出现乱码,所以建议还是直接第一次弹出该窗口时,直接勾上 Don't show this message again为好,眼不见为净)

修改db编码的办法:(在oracle 11g上通过测试)

SQL> conn system as sysdba;

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter system enable restricted session;

SQL> alter system set job_queue_processes=0;

SQL> alter database open;

SQL> alter database character set internal_use AL32UTF8;

SQL> shutdown immediate;

SQL> startup

最后再记录几个常用的oracle sql命令:给用户(hr)解锁:alter user hr account unlock;修改用户(hr)密码(新密码为hr):alter user hr identified by hr;授权(emp)表的select权限给用户(hr):grant select on emp to hr;取消授权:remove select on emp from hr;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值