[RESOLVIDO]Problema ao usar o addBatch()

2 respostas
wilsontads

Eu estou usando o addBatch(); pra migrar dados de um banco pra outro. e a cada cinquenta registros eu insiro, e vou imprimindo na tela, o meu contador C, o problema que eu estou tendo é o seguinte..
eu tenho acima de 400.000 registros pra inserir, quando chega por volta do 300.000 o sistema não mostra mais que está a inserir mais registros.. mostra algo do tipo "Inserindo atualmente C registros". porém, quando eu vou fazer a consulta no banco, ele só inseriu na verdade 50 registros. não é lançado nenhuma excessão, o sistema não trava, simplemente acontece isso.. alguém aqui que utiliza, sabe o que pode estar acontecendo?

public void migraDados2() throws Exception {
        try {

            //..Aqui feita consulta no banco 

            while (rs.next()) {
                //...Aqui os ps.Set
                ps.addBatch();                
                c++;
                
                if (c == 50) { //..a cada 50 registros ele executa.
                    ps.executeBatch();
                }


            }

        } catch (Exception ex) {
            //..Aqui lança a exceção
        } finally {
            ps.executeBatch();
            //..Executa os batchs restantes e fecha as conexões
        }
    }

[img]http://i227.photobucket.com/albums/dd125/technosbr/Semttulo.png[/img]

2 Respostas

Hebert_Coelho

Vai dando uns commit/flush antes de recomeçar o loop para liberar memória. =D

wilsontads

Man eu esqueci de zerar o meu Z ali do contador…
fiz essa correção aqui e to testando agora… até agora 2.000.000 de registros e inserindo… rs
vamo ver no que dá…

Criado 3 de novembro de 2011
Ultima resposta 3 de nov. de 2011
Respostas 2
Participantes 2