0
6,312,391 레지스터가있는 DB에 테이블이 있습니다. 2 백만 개의 레지스터가있는 많은 파일로 데이터를 내보내고 있었지만, 마지막 파일에서 어떤 이유로 든 모든 레지스터가 예상 한대로 작성되지 않았습니다. 나는 2M regs를 가진 3 개의 파일을 가지고 있고 312,391 대신 312,355를 가진 마지막 파일을 가지고있다.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
그 작은 것이 었습니다. – BRabbit27