大家好,我在win7下安装了oracle11g,然后在scott schema下新建了一张test表。字段为id,name,当把name值插入中文字符时,发现显示???。请问怎么解决。应该是字符集问题。按照以下步骤更改了字符集。发现还是没有解决问题。更改了字符集。从AL16UTF16更改为ZHS16GBK
更改步骤:1、用sysdba角色用户登录sqlplus: 命令行输入:sqlplus sys as sysdba
 
               2、输入口令,进入sqlplus:sql>---
 
               3、依次键入下面的命令行执行:
 
                    shutdown immediate;
                    STARTUP MOUNT;
                    ALTER SESSION SET SQL_TRACE=TRUE;
                    ALTER SYSTEM ENABLE RESTRICTED SESSION;
                    ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
                    ALTER SYSTEM SET AQ_TM_PROCESSES=0;
                    ALTER DATABASE OPEN;
                    ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
                    ALTER SESSION SET SQL_TRACE=FALSE;
                    shutdown immediate;
                    startup;
风险分析:执行上述命令,有可能造成数据库中已有数据混乱的情况,所以在进行操作前,
 
               要进行数据库的备份操作;
 
 
 
结果查看:察看 NLS_LANG 信息:
               SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';
              NLS_LANG 信息已经变成:

解决方案 »

  1.   

    楼主对表的插入操作,是在SQL*PLUS里操作的?还是通过某种客户端工具操作的?
      

  2.   


    我是用PL/SQL 7.0 操作的
      

  3.   


    你好,用sqlplus插入中文确实是不会显示乱码的。但是我开发数据库的时候肯定要用pl/sql developer这样的工具啊!是不是问题出在这个工具上。数据库的字符码已经没有问题了。
      

  4.   

        我也有这个问题,我用的是oracle 11g,系统是win7 64位的,不过是日文版的。在SQL DEVELOPER里面插入中文数据,commit之后有些中文就成了?,这个咱整?