0
我在我的DB中有一個表,有6,312,391個寄存器。我將數據導出到每個有200萬個寄存器的許多文件中,但由於某種原因,在最後一個文件中,並不是所有寄存器都按我的預期寫入。我有3個文件和2M的註冊表,最後一個只有312,355而不是312,391。ResultSet沒有帶來來自Oracle DB的所有數據
會發生什麼?我的java程序獲取數據如下:
public void generarArchivoPorRegistros(int registersPerFile) {
CallableStatement cs = null;
ResultSet rs = null;
connect();
try {
cs = connection.prepareCall("{call pec_pec_proc(?)}");
cs.registerOutParameter(1, OracleTypes.CURSOR);
cs.execute();
rs = (ResultSet) cs.getObject(1);
int numberOfFile = 1;
int registersWrote = 0;
try {
BufferedWriter bw = new BufferedWriter(
new FileWriter("SEDESOL_" + (numberOfFile * registersPerFile/(1000000)) + "M.txt"));
while (rs.next()) {
if (registersWrote == registersPerFile) {
bw.close();
numberOfFile++;
bw = new BufferedWriter(
new FileWriter("SEDESOL_" + (numberOfFile * registersPerFile/(1000000)) + "M.txt"));
registersWrote = 0;
}
bw.write(rs.getString(1));
bw.newLine();
registersWrote++;
}
} catch (IOException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (SQLException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
disconnect();
}
我覺得你99.99%是對的,呵呵,讓我試試看吧。謝謝你的幫助。 – BRabbit27 2012-03-08 16:44:00
感謝那是一件小事。 – BRabbit27 2012-03-08 17:22:28