zoukankan      html  css  js  c++  java
  • 使用PLSQL Developer和DbVisualizer、SQLDBx查询oracle数据库时出现乱码

    使用PLSQL Developer和DbVisualizer查询oracle数据库时,出现查询数据中文乱码情况。

    查看了一下数据库编码格式
    select * from v$nls_parameters;

    查看编码值为WE8ISO8859P1。而电脑环境变量NLS_LANG的值为AMERICAN_AMERICA.ZHS16GBK。更改为
    AMERICAN_AMERICA.WE8ISO8859P1之后重启工具就好了。如果没有此环境变量,可以新建一个,将编码值更改为一致。

    我的机器到此就好使了,据说有的需要更改注册表中值。

    运行---->regedit-------->F3查找NLS_LANG----->修改注册表(谨慎)

    HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO/NLS_LANG

    该项值改为和数据库服务端一致

    注:如果不放心,修改该键值:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES/ID0/NLS_LANG。

    注意:配置环境变量的方式,可能导致SqlDBx乱码,运行编码相关文件后,需要去除环境变量,SqlDBx才好使。

    附: http://www.2cto.com/database/201307/227445.html 

    PLSQL显示乱码-无法进行中文条件查询解决
     
    原因:
     
    PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起。类似乱码问题都可以从编码是否一致上面去考虑。
     
    解决:
     
    1. 查询Oracle服务端字符集编码,获取NLS_CHARACTERSET字段值:
     
    执行
    sql代码  
    select * from v$nls_parameters  

               保存查询到的值,如:NLS_CHARACTERSET = AL32UTF8

     2. 查询Oracle服务端语言信息:
     
    执行
    sql代码  
    NLS_CHARACTERSET  
    SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE  
    FROM DATABASE_PROPERTIES  

        保存查询到的值,如:AMERICAN_AMERICA.AL32UTF8

     
           3. 设置本地环境变量。(PLSQL优先从环境变量中获取属性)
     
       右击 我的电脑 -> 属性 -> 告警系统属性 -> 高级 -> 环境变量 -> 系统变量栏
       新增如下两条记录:
       NLS_CHARACTERSET = AL32UTF8
    
       NLS_LANG = AMERICAN_AMERICA.AL32UTF8

     4. 重启PLSQL,OK。

  • 相关阅读:
    LRU缓存机制的实现
    用docker配置mysql主从复制
    策略模式,以及最近用到的策略模式
    2021"MINIEYE杯"中超(7~10)补题
    2021"MINIEYE杯"中超(6)补题
    2021"MINIEYE杯"中超(5)补题
    2021"MINIEYE杯"中超(4)补题
    2021"MINIEYE杯"中超(3)补题
    2021暑期个人赛4补题 (待补充)
    2021暑期个人赛2补题 (待补充)
  • 原文地址:https://www.cnblogs.com/yeyuchangfeng/p/4499544.html
Copyright © 2011-2022 走看看