ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
589
589
EMPFEHLEN
-
16.05.08 14:45 #1
- Registriert seit
- Mar 2008
- Beiträge
- 71
Hallo Leute
ich bin ien Java Neuling und suche Rat
!
Also zum Problem: Ich habe 2 Text Dateien. Beide haben zig tausend zeilen mit folgenden Eintragen:
Ortsname; PLZ; Straße
Ortsname; PLZ; Straße
in der einen Datei stehen die richtigen Daten drin in der andern die zu überprüfenden!
ich habe nun diese Dateien ausgelesen und nach ; getrennt und lege sie Zeilenweise in ein Array! diese möchte ich nun vergleichen und bei fehlern einen String in eine neue Datei Schreiben! (Grundlage: Beide Dateien beinhalten Datenbankwerte. Eine Datei richtig eine falsch! Die falschen muss ich per Update (Ausgabe Stirng der in die Datei Nr.3 soll) ändern)
Nun muesste ich eine Schleife bauen die mir die eintraege vergleicht und wenn PLZ und Strasse gleich sind die Orte ( die falsch sind in der einen datei) in den update befehl schreiben.
Habe auch schon was von arraylisten gehoert weiss nun nicht was ich am geschicktesten machen soll! Jemand ideen oder Lösungansätze?
Hoffenbtlcih hab ich es einigermaßen verstaendlcih ausgedrückt
!
Vielen Dank im vorraus
-
16.05.08 15:05 #2
- Registriert seit
- Aug 2007
- Beiträge
- 166
Kannst du das nicht direkt in der Datenbank selbst per SQL Statement erledigen?
-
16.05.08 15:08 #3
- Registriert seit
- Mar 2008
- Beiträge
- 71
Um ehrlcih zu sien (schande auf mein Haupt) bin ich auf diese Idee noch gar nicht gekommen! Allerdings handelt es sich um ein empfindliches System in dem ich nicht einfach Datenändern möchte. Es wäre mir lieber ich könnte mir erst diese update Datei erstellen in der die zu ändernden Datensaetze drin stehen um es vorab zu überprüfen.
-
Auch das ist über die Datenbank möglich!Es wäre mir lieber ich könnte mir erst diese update Datei erstellen in der die zu ändernden Datensaetze drin stehen um es vorab zu überprüfen.
Code sql:1 2
SELECT "UPDATE tabelle SET feld1 = '" || fehler_fälle.richtiger_wert || "' WHERE id = '" || fehler_fälle.falscher_eintrag_id || "';" FROM fehler_fälle;
Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
16.05.08 15:36 #5
- Registriert seit
- Mar 2008
- Beiträge
- 71
ok ich versteh die abfrage nciht ganz
! ich benutze eine Oracle Datenbank und die beiden selects fuer meien Dateien sind folgende!
Code sql:1 2 3 4
-- falsche daten SELECT DISTINCT Strasse,ort,plz FROM erkennung_anrufer; --richtige daten SELECT DISTINCT weg,ort,plz FROM adressen WHERE plz BETWEEN '66000' AND '66999' ORDER BY plz;
-
Code sql:
1 2 3 4
SELECT DISTINCT id,Strasse,ort,plz FROM erkennung_anrufer WHERE strasse || ort || plz NOT IN ( SELECT DISTINCT weg || ort || plz FROM adressen WHERE plz BETWEEN '66000' AND '66999' ORDER BY plz) INTO temp fehler_faelle;
Dann hast du die falschen Adressen in einer Tabelle und kannst den schon genannten Select (in angepasster Form) auf die Fehler loslassen.Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
16.05.08 16:00 #7
- Registriert seit
- Mar 2008
- Beiträge
- 71
da sagt er mir das die rechte klammer fehlt! lösche ich das order by raus wirft er mir vor das der statement nicht richtig beendet wurde
setze ich dann im subselect ein semikoln dann meckert er wieder wegen der fehlenden rechten klammer
!
-
Das order by plz muss definitiv raus, ich hab das nur von deinem Select kopiert, darum

Das Semikolon im Subselect ist definitiv falsch.
Meine Zeit mit Oracle ist jetzt schon einige Zeit her, evtl musst du da auch nochmal tempTable-Zwischenschritte einlegen, bin mir aber ziemlich sicher, dass Oracle das können müsste.Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
16.05.08 16:06 #9
- Registriert seit
- Mar 2008
- Beiträge
- 71
kann sein das oracle das kann ;D aberich vemrute auch das ich das nicht darf ! es handelt sich hier um eine embedded DB
deswegen war mein erster ansatz auhc die Dateien extern verarbeiten!
ich kann definitiv keine festen tabellen anlegen deswegen weiss ich auch ned ob ich temp dateien anlegen kann!
-
Das sind keine Dateien sonder tempTables, Tabellen, die nur im User-Kontext angelegt werden und auch nur für die Dauer der Datenbank-Session existieren, ab- und wieder anmelden und die sind weg.
Im Normalfall beschränkt man einen User nicht soweit, dass man das nicht dürfte.
Teste es doch einfach mal:
Code sql:1 2 3
SELECT FIRST 100 FROM tabelle INTO temp test; SELECT * FROM test; DROP TABLE test;
Und nein, first dürfte oracle nicht kennen, allerdings ist das auch nur ein Beispiel und an die TopN-Analysen von Oracle denke ich ungern zurück
Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
16.05.08 16:22 #11
- Registriert seit
- Mar 2008
- Beiträge
- 71
alles gut und schoen aber den user schrenkt man soweit ein wenn man ncith will das sie selbst abfragen machen ;D weil man ihnen dafuer ja eigene produkte verkauft und einen wartungsvertrag hat und da nicht riskieren will das der user selbst was anlegt und aendert
!
und nein er macht es nicht
! er haut mir immer eine fehlermeldung raus und makerit die stelle vor dem into
! also kann er wohl keine temop tables erstellen
!
und ich mach nun feierabend! we ruft
FALLS jemand noch hilfe zu meiner JAVA Variante hat bin ich ihm dafür dankbar (wollte das auch in JAVA schreiben um das evtl mal zu lernene
!
DANKE
Ähnliche Themen
-
SQL Vergleich zweier Tabellen
Von LordDarkness im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 11.07.10, 12:39 -
vergleich zweier xml-dateien - suche nach beispiel
Von sandeman im Forum JavaAntworten: 0Letzter Beitrag: 01.08.07, 14:23 -
[C] Vergleich zweier SQL-Tabellen
Von Buba235 im Forum C/C++Antworten: 5Letzter Beitrag: 12.07.06, 12:02 -
Vergleich zweier Werte mit: Min (a,b)
Von Jai im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 21.11.05, 10:20 -
Vergleich Inhalt zweier Dateien
Von schokoriese im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 21.12.03, 23:00





Zitieren
Login





