由于ORACLE數據庫中有最大打開連接限制,比如插入操作一次性只能夠插入300條等,如果在當前連接再插入記錄就會報錯,可以采用重新連接的方式去插入。但是這里記錄太多,如果每到一個數就要去重新連接,然后還要去確定當前記錄是否已經存在于數據表中,這是一個很大的資源浪費。
我的想法是:
    如果我在源表中已經讀到了300條記錄(讀記錄是不會出錯,但是目標寫入表要報最大連接限制錯誤,因而重新連接CONN都要重新連接),下次我從301條讀取,這樣我就省去了在目標表中去判定當前記錄是否已經存在,達到一個比較好的效率。
但是我看了一下,好像不可以直接轉到某一行,不知道那位朋友有解決的方案,小弟受教了。

解决方案 »

  1.   

    PreparedStatement 插入4000条没问题,当然要设置数据库你说的情况,就要取得当前最后一条数据?ResultSet.last() 试试吧
      

  2.   

    在查询语句后面加上(where...)“ and rownum>XXX”(仅限Oracle)
    但是在翻页过程中如果数据行有增删改而影响了顺序,那就不正确了。
      

  3.   

    方法不行,兄弟,我分別采用下面兩種方式都不行:
    select * from card_rec_meteor where rownum>1;及
    select * from card_rec_meteor where to_char(cr_cdate,'yyyy/mm/dd')='2006/04/28' and rownum>1;
    都沒有記錄
    里面是有記錄的。