将你客户端的字符集设置成服务器端的
在注册表中nls_lang

解决方案 »

  1.   

    1.请问我怎么查看服务器端的字符集?
    2.那个porc文件是在数据库服务器上编译和执行的,为什么还出现这种问题?
      

  2.   

    如果用Java写的,就可能要用GetByte来转换字符集。还有搂上说的,看看两边的字符集是不是一样
      

  3.   

    但数据库中不是显示‘小王’ 而是‘JO??’--你是怎么看到显示的? 应该是从本机连上数据库查询的吧,
    --如果是这样的话,不管你是从本机执行插入还是在服务器上,把执行查询的那台机的注册表改一下.
    --改成:
    select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,(select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,(select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3
    得到的结果,试试看.
      

  4.   

    我的oralce也是有问题,比方一串字符,是中文的,中间有几个是“—” ,写到数据库中后再读出来变—成了?号了,其它的汉字正常,oracle真是不好用的
      

  5.   

    运行proc程序的那台机子是linux系统,好像没有注册表,怎么办呢?
      

  6.   

    我在linux系统的oracle数据库服务器上执行sqlplus,执行例如:select * from table;
    查出来的记录中中文字段显示的值就是“???”乱码,请问如何解决????
      

  7.   

    我使用的终端就是那台数据库服务器!!! 
    那台数据库服务器也能够显示中文,例如: 
    #include<stdio.h> 
    #include<string.h> 
    #include<stdlib.h> 
    main() 

    printf("显示中文!"); 
    } 是能够显示中文的!!! 但执行例如: 
    SQL> select * from ta_calltype; 
    显示的结果却是: ID NAME 
    ---------- -------------------- 
    2 ?? 
    4 ?? 
    8 ???? 
    16 ?? 
    32 ????? 
    64 IP????????? 
    128 ?IP???????? 
    256 ?? 
    1 ?? 
    512 ???? 
    1024 ????? ID NAME 
    ---------- -------------------- 
    2048 ????? 
    4096 ????? 
    8192 ????? 14 rows selected. 
    请问如何解决??????