HELP!SQL查询丢失几百万条数据的问题

dirboy_tym 2005-09-28 08:47:25
各位大虾:
用SQL查询ORACLE数据库表,然后一条条的读取数据写入文本文件。奇怪的是同样的sql和程序,有不同的结果。
比如正确应该有800万条记录左右,但是有时候生成的只要100多万条,但是又没有产生异常。如果重新生成则数目从100多万条~800万条不等。郁闷!
望牛人援手!
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_tsinghua 2005-10-08
  • 打赏
  • 举报
回复
int 型是不是小了点
dirboy_tym 2005-10-02
  • 打赏
  • 举报
回复
需要指出的是当数据量比较少的时候(<10万条)很少出错
当数据量比较大(比如> 100万),就会出现同样的代码同样的sql导出的记录数目不一样
zwj0712 2005-09-29
  • 打赏
  • 举报
回复
用你的工具导出来看看..
dirboy_tym 2005-09-29
  • 打赏
  • 举报
回复
那样会很慢的,比如用toad导几百万条数据
而且记录信息比较多,一般会有1~2G,压缩后几百M
有的时候能全,有的时候就很少的数据,又没有异常
痛苦呀,那位高人能指点!!!!
bersagliere005 2005-09-28
  • 打赏
  • 举报
回复
确实有点奇怪
一般都是导入导出的时候
忽略了一些字段的有部分的特殊字符
所以不完全
但是同样的代码结果是一样的
学习
dirboy_tym 2005-09-28
  • 打赏
  • 举报
回复
需要指出的是当数据量比较少的时候(<10万条)很少出错
当数据量比较大(比如> 100万),就会出现同样的代码同样的sql导出的记录数目不一样
dirboy_tym 2005-09-28
  • 打赏
  • 举报
回复
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();
hevin 2005-09-28
  • 打赏
  • 举报
回复
楼主给的信息太少了点吧。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧