Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso armazenar grande quantidade de dados de um banco de dados para XML (problema de memória)?


Por que não gravar todos os dados em um arquivo e abrir o arquivo com a opção "append"? Não há necessidade de ler todos os dados no arquivo se você for apenas gravar nele.

No entanto, esta pode ser uma solução melhor:
PrintWriter writer = new PrintWriter(new BufferedOutputStream(new FileOutputStream("data.xml")));

while(rs.next()){
    i++;
    writer.print("\n\t<row>");
    writer.print("\n\t\t<ID>" + Util.transformToHTML(rs.getInt("id")) + "</ID>");
    writer.print("\n\t\t<JED_ID>" + Util.transformToHTML(rs.getInt("jed_id")) + "</JED_ID>");
    writer.print("\n\t\t<IME_PJ>" + Util.transformToHTML(rs.getString("ime_pj")) + "</IME_PJ>");
    //...

    writer.print("\n\t</row>");
}

writer.close();

O BufferedOutputStream armazenará os dados em buffer antes de imprimi-los e você poderá especificar o tamanho do buffer no construtor se o valor padrão não atender às suas necessidades. Consulte a API java para obter detalhes:http://java.sun.com/javase /6/docs/api/ .