• 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,该软件启动时,也会检测客户端与服务端之间的编码差异,如果发现不同,将弹出下面的对话框:

    要想去掉这个提示:修改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;
     
  • 相关阅读:
    解决.net中access数据库连接相对路径问题
    .NET网站实例之文件上传与管理
    .NET网站实例之用户登录实例
    解决DataList控件无缝滚动图片
    【转帖】随机彩色验证码,点击刷新效果
    .NET实例之购物车系统
    .NET网站实例之投票系统
    网络模拟与抓包
    iOS开发中的SQLite知识总结
    关于ARC的一些说法
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/2763787.html
Copyright © 2020-2023  润新知