不应该呀
是不是你到到1万多条的那次,网络出点问题或什么不过这么多的记录,建议你使用SUN的ROWSET这个JAR包来做处理
不要使用RESULTSET
你可以到JAVA。SUN。COM上去下在RowSet.jar,放到CLASSPATH中
然后用它的结果集
它是一个无连接的,你把数据取到RowSet的对象中以后就和DB断开了

解决方案 »

  1.   

    hoho~~~~~~~~~~但是我的同时做的10多万条记录都没事啊,可就是我的有事,我们也找不出原因。应该不是网络的事情了。我用3万多条的读取,报错。然后又用2万多条的进行转换就没事。再用3万多条的还是出错,都是在固定的10990条记录之后报异常.
      

  2.   

    我怀疑是jdbc的原因,但是不知道出在那里。我换不同的查询条件,是2万多条的时候有没有问题。都写到文件边去了。
      

  3.   

    报的是SQLExcetpion:违反协议。我也看了内存了。我的总内存是191,读的时候一直很平稳,保持在90多兆左右。
      

  4.   

    我做的从dbase到sql server的数据转换,记录数达到100多万条也没有问题。
    我是写的java bean进行处理的,插入时调用的是sql server 的存储过程,多少也没问题。
      

  5.   

    看看是不是driver有问题,如果可能换一个试试。
      

  6.   

    问题找出来了,是一条记录的的某个字段,它是varchar2类型的,在sqlplus下显示它带有一个黑块和一个问号,ResultSet指到这条记录的时候就报:违反协议。
        如果我读的时候要允许这样的字符存在,那么我应该怎么处理。就是说当有这样的字符时,我要正常读它,不报错有没有可能,请指教。我会给指点正确的人加分的。
      

  7.   

    可能是你那条记录里有个字符(可能是双字节的)被损坏了,成了一个不能识别的字符。你可以先备份那条记录,然后从源表中删除,接着再导。
    或者把那条记录UPDATE掉
    如:mytable 中的myfield中有这样的记录:'我的正确??'(不能识别的字符)
    update mytable set myfield='我的正确值' where ~~~~~你的源表中估计还有同样情况的数据,建议你在源库端建一个和源表一样结构的新表,然后在程序中加上EXCEPTION处理,遇到异常就把有异常的数据插入到新建表中去,删除源表中的异常数据,这样就不影响下面数据的导入。
    最后再到新表中把有问题的数据改正,然后再把新表中的数据补充导入
      

  8.   

    强烈推荐!强烈推荐全新的调查!
    强烈推荐!强烈推荐!强烈推荐全新的调查!
    强烈推荐!强烈推荐!强烈推荐!强烈推荐全新的调查,谢谢!http://www.csdn.net/Expert/TopicView1.asp?id=655336
      

  9.   

    呵呵,老哥到处问这个问题啊。
    感觉这里的VC和Java论坛还是很不错的。
    远比DFW热闹!
      

  10.   

    同意zzyy() ,我猜也是这个问题。
      

  11.   

    多考虑CPU的因素,这种问题在DOS时代就有了
      

  12.   

    这种问题我在unix下遇到过,也是当数据超过一定数目是就core down,这跟机器有关系,你不妨换台机子试试!
      

  13.   

    java 跟机器硬件没有什么关系,VM隔离了