• 使用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。

  • 相关阅读:
    poj 2728 Desert King
    uva 439 Knight Moves
    hdu 1875 畅通工程再续
    scau实验题 8600 骑士周游问题(有障碍物)
    scau实验题 8596 Longest Ordered Subsequence
    poj 1679 The Unique MST
    uva 527 Oil Deposits
    poj 2533 Longest Ordered Subsequence
    .net 程序员 java 开发入门
    Collation conflict occur at operation on User define funtion & table's column
  • 原文地址:https://www.cnblogs.com/yeyuchangfeng/p/4499544.html
Copyright © 2020-2023  润新知