你数据库的字符集不是中文字符集。
要改变数据库的字符集,oracle建议是重新建库

解决方案 »

  1.   

    你的数据库字符集是英文的。
    你可以通过更改系统配置,把字符集变成中文。
    你在你的配置文件中把NLS_LANG项改成:
     NLS_LANG=ZHS16GBK;
      

  2.   

    我在oracle技术网查到oracle for nt 可以 
    connect internal 
    alter database ORCL character set ZHS16GBK; 
    alter database ORCL national character set ZHS16GBK; 
    但在linux下却报错 
    ORA-01679: database must be mounted EXCLUSIVE and not open to activate 
    不知如何解决
      

  3.   

    应该是在sqlplus中运行以下命令
    alter database ORCL character set ZHS16GBK; 
    alter database ORCL national character set ZHS16GBK; 运行结束后,再做如下步骤:
    connect internal
    shutdown immediate
    startup
      

  4.   

    不好意思刚才弄错了!
    办法一、
    用sqlplus,用户system
    SQL> update sys.props$ set value$='ZHS16GBK' where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
    SQL> commit;
    SQL> exit
    重新关闭、启动数据库或机器重启。办法二、
    select  *  from  sys.props$;
    shutdown  immediate; 
    startup  mount;
    alter  database  CHARACTER  SET  internal_use  ZHS16GBK;    
    alter  database  NATIONAL  CHARACTER  SET  internal_use  ZHS16GBK;    
    shutdown  immediate;
    startup  restrict; 
    select  *  from  sys.props$;
    shutdown  immediate;
    startup;
      

  5.   

    第一种方法我也试过,现在我的props$表里的'NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'设置已经是 ZHS16GBK了,
    但是select仍是??,是不是这个版本的oracle不支持中文字符集
    第二种方法还是报
    ORA-01679: database must be mounted EXCLUSIVE and not open to activate 错,不知怎样才能mount成exclusive模式
      

  6.   

    方法一中,你试试这个:
    SQL> update sys.props$ set value$='ZHS16CGB231280' where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');方法二中:
    startup  mount exclusive;
      

  7.   

    我自己安装的一台unixware下面的oracle无法显示汉字,就是用第一种方法解决的!
      

  8.   

    可以了,我在表里又插入了些中文数据,就可以显示了,但以前的还是无法显示,非常感谢你,lupp()