建立了oracle dblink sqlserver 
在oracle中查询数字字段没问题,为什么查不出来字符字段?
是不是字符集的问题?oracel:817
MMSQL:2000

解决方案 »

  1.   

    看一下:http://topic.csdn.net/u/20080923/14/6d85cc70-05d8-44f7-9fc1-472475985bf5.html
      

  2.   

    [Q]怎么样查看数据库字符集
      
      [A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
      
      客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
      
      表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
      
      会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
      
      客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
      
      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。
      
      [Q]怎么样修改字符集
      
      [A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
      
      Startup nomount;
      Alter database mount exclusive;
      Alter system enable restricted session;
      Alter system set job_queue_process=0;
      Alter database open;
      Alter database character set zhs16gbk; 
      

  3.   

    查询语句:
    select * from kqjl_v@kq;
    结果:
            R_id   Person_id
    ----------- -----------
           1200         159
           1201         292
           1202         252
           1203         364
           1204         364
           1205         505
           1206         396
           1207         549
    其实还有三个字符串字段不显示。SQL> select "PCode" from kqjl_v@kq;select "PCode" from kqjl_v@kqORA-00904: 无效列名
      

  4.   

    去掉双引号。select PCode from kqjl_v@kq; 
      

  5.   

    select PCode from kqjl_v@kq; oracle中是这么使用的
      

  6.   

    SQL> select PCode from kqjl_v@kq;select PCode from kqjl_v@kqORA-00904: 无效列名
    去掉引号也是一样的,用select * from kqjl_v@kq; 查询根本没看到字符字段
      

  7.   

    kqjl_v表中只有R_id和Person_id字段,根本就没有 PCode字段啊?!
      

  8.   

    kqjl_v表中有五个字段PCode,P_Name 字符
    RsTime 日期
    Person_id,R_id  数字
      

  9.   

    --能否在sqlserver中用查询分析器查一下:select * from kqjl_v;
      

  10.   

    使Oracle客户端与服务器端的字符集相同,参考:http://topic.csdn.net/t/20030710/20/2014176.html
      

  11.   

    设想一下:能否存在Oracle与sqlserver字符集不一致的问题?
      

  12.   

    还是 安装TRANSPARENT GATEWAY选件(FOR MSSQL)时有问题? 
      

  13.   

    我没有单独安装TRANSPARENT GATEWAY选件(FOR MSSQL)
      

  14.   

    读取char类型有错啊 - -