W
wranger
Gast
Hallo,
ich habe die Aufgabe bekommen aus SQL-Skripten die angegebene ID um einen bestimmten Wert zu erhöhen.
SQL-Skript liegt in einer Datei. Dort gibt es unterschiedliche IDs die erhöht werden müssen
Jetzt zum Problem: Er erhoeht die Werte auch, jedoch nicht immer, ab und zu eben nicht und ich weiß absolut nicht warum. Bislang konnte ich kein Muster feststellen wo er nicht erhöht.
JavaVersion 1.4
Fehler:
MfG
Carsten
ich habe die Aufgabe bekommen aus SQL-Skripten die angegebene ID um einen bestimmten Wert zu erhöhen.
SQL-Skript liegt in einer Datei. Dort gibt es unterschiedliche IDs die erhöht werden müssen
Code:
insert into T_STANDORT (ID, REG_NR_DS, REG_NR_FN
values (29144, 944, 8501, 2005
insert into T_STANDORT (ID, REG_NR_DS,
values (29145, 944, 8501, 2005
Jetzt zum Problem: Er erhoeht die Werte auch, jedoch nicht immer, ab und zu eben nicht und ich weiß absolut nicht warum. Bislang konnte ich kein Muster feststellen wo er nicht erhöht.
JavaVersion 1.4
Code:
int i =0,anfang=0;
anz_spaces =1; //an welchem Space die ID liegt
startwert =29144;
anz_daten=4084; //Gesamtanzahl an daten
erhoehung_id = 10000; //Wert um die die ID erhoeht werden soll
long endwert = startwert+anz_daten,erhoehen;
String daten_temp;
Pattern p;
Matcher m;
try{
BufferedReader reader = new BufferedReader(new FileReader(open_pfad));
BufferedWriter writer = new BufferedWriter(new FileWriter(save_pfad));
while(reader.ready())
{
daten = reader.readLine();
anfang=0;
//sucht nach dem dem angegebenen space
for(i=0;i<anz_spaces;i++)
{
anfang = daten.indexOf(" ", anfang+1);
}
//Durchlaufe die Zeile und suche nach allen Werten die vorkommen können
//Ist so ein wert gefunden erhöhe um die entsprechende Anzahl
for(long j=startwert;j<=endwert;j++)
{
p = Pattern.compile("("+j+")");
m = p.matcher(daten);
erhoehen = j+erhoehung_id;
if(m.find(anfang))
{
daten_temp =daten.substring(0, m.start())+erhoehen+daten.substring(m.end(),daten.length())+"\n";
writer.write(daten_temp);
break;
}
//Wurde keine wert gefunden schreibe die zeile trotzdem
if(j==endwert)
{
writer.write(daten+"\n");
}
}
}
writer.close();
}
catch(Exception e)
{
System.out.println("fehler beim einlesen");
}
}
Fehler:
Code:
insert into T_STANDORT (ID
values (40219, 421, 2521
insert into T_STANDORT (ID
values (30220, 475, 8512
MfG
Carsten