Ik zit met een probleem waar ik niet uit kom 
Doormiddel van een zelf gemaakt tooltje probeer ik een tabel uit de ene database naar een andere database te kopieeren.
De source db benader ik via ODBC en de 2e is mysql.
De source db bevat 450.000+ records en als ik mijn tooltje draai stopt ie bij
de ~228600 records en zegt dat alles goed is gegaan en hij klaar is, maar dat is hij dus niet
.
Ik heb het volgende al gedaan:
PreparedStatement en Statement maakt niets uit.
setMaxRows(500000), maar maakte ook niets uit.
ipv met batches per regel uitvoeren maar dat hielp ook niet.
Ik weet het echt niet meer, geef foutmelding niets hij zegt gewoon dat ie klaar is
Iemand een idee?
ALvast bedankt voor de moeite
Doormiddel van een zelf gemaakt tooltje probeer ik een tabel uit de ene database naar een andere database te kopieeren.
De source db benader ik via ODBC en de 2e is mysql.
De source db bevat 450.000+ records en als ik mijn tooltje draai stopt ie bij
de ~228600 records en zegt dat alles goed is gegaan en hij klaar is, maar dat is hij dus niet
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| public void transfer() { int error = 0; int t = 0; int batch = 0; String sql = null; try{ PreparedStatement sc = cameleon.prepareStatement("select * from msttr"); ResultSet rsc = sc.executeQuery(); Statement sm = mysql.createStatement(); rsc.next(); while (rsc.next()){ println("record: "+t); sql = "INSERT INTO msttr VALUES(\'"+rsc.getString("art_no")+"'," +rsc.getInt("trans_type")+",\'" + rsc.getInt("trans_date")+"',\'"+rsc.getInt("st_vou_no")+"'," +rsc.getInt("qty_trans")+","+rsc.getInt("st_bal") +","+ rsc.getInt("check_bal") +","+rsc.getInt("std_price")+","+ rsc.getInt("sp_pr_cd")+")"; if (batch < 13000){ sm.addBatch(sql); rsc.next(); batch++; } else { sm.executeBatch(); sm.clearBatch(); batch = 0; System.out.println("clear batch"); } t++; } sm.executeBatch(); }catch(Exception e){ println(e.toString()); println(sql); System.exit(0); error++; } println(sql); println("Errors: "+error); println("total records: "+t); } |
Ik heb het volgende al gedaan:
PreparedStatement en Statement maakt niets uit.
setMaxRows(500000), maar maakte ook niets uit.
ipv met batches per regel uitvoeren maar dat hielp ook niet.
Ik weet het echt niet meer, geef foutmelding niets hij zegt gewoon dat ie klaar is
Iemand een idee?
ALvast bedankt voor de moeite
[ Voor 22% gewijzigd door eppie op 23-11-2004 09:43 ]