各位大虾:
    用SQL查询ORACLE数据库表,然后一条条的读取数据写入文本文件。奇怪的是同样的sql和程序,有不同的结果。
    比如正确应该有800万条记录左右,但是有时候生成的只要100多万条,但是又没有产生异常。如果重新生成则数目从100多万条~800万条不等。郁闷!
    望牛人援手!

解决方案 »

  1.   

    HP_UNIX环境,oracle9i,C++开发
       nFieldCnt             //查询字段数目
       strSQL                //查询sql语句
       pFile                 //保存的文件指针
       m_pdbOper             //开发的数据库查询类
       以下是代码
       int nCount = 0;
       string strTmp,strReocrd;
       int nRet = m_pdbOper->query(nFieldCnt,strSQL);
       if(nRet < 0)
       {
            m_pdbOper->releaseReocrd();
            return -1;             //查询失败
        }
        while(!m_pdbOper->isEnd())
        {
            strRecord = "";
            for(int i=0;i<nFiledCnt; i++)
            {
                (*m_pdbOper) >> strTmp;
                strRecord += strTmp;
            }//for(int i=0;i<nFiledCnt; i++)
            fput(strRecord.c_str(),pFile);
            nCount ++;
        }//while(!m_pdbOper->isEnd())
        m_pdbOper->releaseRecord();
      

  2.   

    需要指出的是当数据量比较少的时候(<10万条)很少出错
    当数据量比较大(比如> 100万),就会出现同样的代码同样的sql导出的记录数目不一样
      

  3.   

    那样会很慢的,比如用toad导几百万条数据
    而且记录信息比较多,一般会有1~2G,压缩后几百M
    有的时候能全,有的时候就很少的数据,又没有异常
    痛苦呀,那位高人能指点!!!!
      

  4.   

    需要指出的是当数据量比较少的时候(<10万条)很少出错
    当数据量比较大(比如> 100万),就会出现同样的代码同样的sql导出的记录数目不一样