本机使用oracle8开发,一开始中文查询为乱码,改过nls_lan后正常,现在想链接另一台服务器oracle11里面的一个表查点东西用,结果查询出来的英文和数字字段都正常,中文字段不是乱码了。。直接是""了 下面为程序string StrConn_10 = "Data source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=26.75.7.10)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)));Password=123qs;Persist Security Info=True;User Id=prog";        string sql = "select * from TB_GROUP where DEL_FLAG = 0";
        
        DataSet ResultSet = OracleHelper.OracleHelper.ExecuteReader(StrConn_10, CommandType.Text, sql);
        if (ResultSet.Tables.Count > 0)
        {
            foreach (DataRow row in ResultSet.Tables[0].Rows)
            {
                string GROUP_GUID = row[0].ToString();
                string GROUPNAME = row[1].ToString();
                string GROUPTYPE = row[2].ToString();
                string GROUPREMARK = row[3].ToString();
                string UPGROUPID = row[4].ToString();}}我感觉是不是远端oracle11的nls_lan和我自己的不同啊,但是又不能改服务器上面的
还是问下大家是怎么回事吧

解决方案 »

  1.   

    查询本机的ORACLE8数据库没问题
      

  2.   

    想链接另一台服务器oracle11里面的一个表查点东西用
    lw另外一台服务器的字符集和之前的服务器不一样
    需要变更为与服务器想同即可
      

  3.   

    1、你客户端使用的字符集与11g不一致。
    可以select userenv('language') from dual查看,如果不一致,你需要修改客户端的字符集。
    2、虽然一般来说,低版本的客户端是可以连接高版本的服务器。但你的客户端是不是太旧了。
      

  4.   

    自己搞定了
    NVARCHAR和VARCHAR的问题,都换成VARCHAR就可以了,好像远程传的时候默认VARCHAR比较好用