我用oracle9i客户端精简版连接服务器成功了,但是输入sql时候,错误提示后面都是问号?比如:
SQL>select;
select
     *
ERROR 位于第 1 行:
ORA-00936: ?????后面全是问号,怎么解决啊?谢谢

解决方案 »

  1.   

    错误原因:   一般,是因为字符集设置不对照成的。     
      解决方法:     
      1、检查服务器上Oracle数据库的字符集   
      SQL>   conn   sys/change_on_install   
      连接成功.   
        
      SQL>   desc   props$   
        列名                                                     可空值否       类型   
        -------------------------------   --------   ----   
        NAME                                                         NOT   NULL   VARCHAR2(30)   
        VALUE$                                                                       VARCHAR2(2000)   
        COMMENT$                                                                   VARCHAR2(2000)   
        
      SQL>   col   value$   format   a40   
      SQL>   select   name,value$   from   props$;   
      NAME                                                       VALUE$   
      ------------------------------   -------------------------   
      DICT.BASE                                             2   
      NLS_LANGUAGE                                       AMERICAN   
      NLS_TERRITORY                                     AMERICA   
      NLS_CURRENCY                                       $   
      NLS_ISO_CURRENCY                               AMERICA   
      NLS_NUMERIC_CHARACTERS                   .,   
      NLS_DATE_FORMAT                                 DD-MON-YY   
      NLS_DATE_LANGUAGE                             AMERICAN   
      NLS_CHARACTERSET                               ZHS16GBK   
      NLS_SORT                                               BINARY   
      NLS_CALENDAR                                       GREGORIAN   
      NLS_RDBMS_VERSION                             7.3.4.0.0   
      GLOBAL_DB_NAME                                   ORACLE.WORLD   
      EXPORT_VIEWS_VERSION                       3   
        
      查询到14记录.   
        
      NLS_CHARACTERSET这个参数应该是ZHS16GBK,如不是,改为它。   
        
      SQL*Plus中修改方法:   
      SQL>   update   props$   set   value$='新字符集'   where   name='NLS_CHARACTERSET';   
        
      操作系统中修改方法:   
      connect   internal   
      alter   database   ORCL   character   set   ZHS16GBK;   
      alter   database   ORCL   national   character   set   ZHS16GBK;   
        
      2、检查操作系统级Oracle汉字显示的字符集   
      运行regedit,定位到:   
      HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE   
        
      找到以下字符串   
      NLS_LANG   
        
      检查是否以下内容,如不是,改之   
      SIMPLIFIED   CHINESE_CHINA.ZHS16GBK
      

  2.   

    SQL> conn sys/change_on_install
    ERROR:
    ORA-12560: TNS: 协议适配器错误
    警告: 您不再连接到 ORACLE。
    SQL> select;
    SP2-0640: 未连接
    SQL> select * from emp
      2  ;
    SP2-0640: 未连接输入conn sys/change_on_install倒是能显示中文了,结果出现上面的问题。
      

  3.   

    你要用你自己的sys密码啊 。。
      

  4.   


    比如要写成这样的:
    conn system/system@orcl as sysdba;
    才行啊。
      

  5.   

    desc  props$
    提示object does not exist
    我telnet上去后
    conn name/pwd@DB as sysdba
    提示insufficient privileges然后发现错误提示都是英文,不是中文可是用客服端简版,却出现问号查了HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE的NLS_LANG,发现是NA,改后,还是不成
      

  6.   

    谢谢,问题已经解决。
    我telnet到测试server,
    然后SELECT USERENV('LANGUAGE') "Language" FROM DUAL,
    发现是AMERICAN_AMERICA.WE8ISO8859P1,
    然后将HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG改之。