各位大师:
      我的Oracle11G是中文版,而我的Oracle开发工具是英文版的,但是当我开发一个程序或者通过数据库开发工具向数据库插入数据时,则出现乱码,请各位大师帮帮忙,万分感谢。

解决方案 »

  1.   

    这个肯定是可以的,但是我用pl/sql数据库开发工具英文版的插入或者用SQL Developer插入时出现乱码,只要是英文版式都不行哦
      

  2.   

    sqlplus你试了吗? 我怀疑都是乱码 
    怎么个乱码? 插入之后 查询时才出现的吗?
      

  3.   

    用英文版的plsql developer也没出现过这种情况
    是不是你的oralce有问题?
      

  4.   

    这应该跟你的开发工具没有关系的,关键是你的oracle 服务器与你开发端的nsl_lang的值是否相同?大部分都是字符集问题造成的。检查你开发端上的nsl_lang的值(注册表中),检查服务器端中的字符集select userenv(‘language’) from dual;
    不一样修改试一下。
      

  5.   

    写封中文信件寄到美国去,美国人看不看的懂,和写字用的什么笔是没有关系的,取决于那个美国人懂不懂中文。同理,插入乱码,和你使用中文版plsql developer、英文版plsql developer也是没有关系的,取决于客户端和服务端的字符集设置是否一致。
      

  6.   

    我的字符集是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,我用的是PL/SQL DEVELOPER英文版的,会出现乱码,我用SQLDeveloper一样,也会出现乱码,只要是英文版的都就会出现乱码,如果要解决这个问题应该如何呢?可以说详细一点吗,谢谢。
      

  7.   

    可能是你在建数据库的时候选择的不恰当!
    你更改一下注册表
    regedit-> oracle-〉下的所有nls_lang的数据全部改为:AMERICAN_AMERICA.US7ASCII就可有了
    1
    我以前遇到这个问题是这么解决的!
    你可以试试!
    希望能帮到你
      

  8.   

    这个跟你的系统环境有关,在默认安装数据库时,数据库字符集会参考你的系统环境来安装,因此,你的乱码是由于你数据库端的字符集是英文所致.
    更改字符集如下:
    ===========================
    修改Oracle字符集(character set) 
    本方法适用于Oracle9i, 10g以及XE. 在10.2.0.1.0下测试无错. 需要注意的是, 使用此方法会破坏数据库中的原有双字节字符. 一种办法是先将数据库导出, 修改完字符集后再导入; 另一种办法就是不管他, 就那样使用. 一般如果是一个测试环境, 像方法二那样就可以了, 但是可能某些表无法读取, 需要注意.
     
    sql> shutdown immediate 
    sql> startup mount 
    sql> alter system enable restricted session; 
    sql> alter system set job_queue_processes=0; 
    sql> alter system set aq_tm_processes=0; 
    sql> alter database open; 
    sql> alter database character set <internal_use> AL32UTF8; 
    sql> shutdown immediate 
    sql> startup 
     
    这里的INTERNAL_USE可选,譬如用于不能从父集转到子集的场合,但是这样做会产生乱码,或者表中的数据不能读取。
     
    如果数据库中存在CLOB字段,那么就不允许对字符集进行转换,此时可以查看alert<sid>.log文件,把含有CLOB的表trancate.
     
    sql> trancate table [table_name]; 
     
    转换后的数据库字符集可以通过以下命令察看.
     
    sql> select name, value$ from props$ where name like '%NLS%'; 
     
    导入导出是我们常用的一个数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用。在导出操作时,非常重要的是客户端的字符集设置,也就是客户端的NLS_LANG设置。
     
    NLS_LANG参数由以下部分组成:
     
    NLS_LANG=<Language>_<Territory>.<Clients Characterset> 
     
    NLS_LANG各部分含义如下:
        Language
            -Oracle消息使用的语言 
            -日期中月份和日显示
        Territory 
            -货币和数字格式 
            -地区和计算星期及日期的习惯
        Clients Characterset 
            -控制客户端应用程序使用的字符集
     
    例如
     
    E:\>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    E:\>sqlplus "/ as sysdba" 
     
    或者
     
    E:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    E:\>sqlplus "/ as sysdba" 
     
    Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
     
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\ 
     
    xx指存在多个ORACLE_HOME时系统编号。