tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
589
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    RaketenPeter RaketenPeter ist offline Mitglied Silber
    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
     

  2. #2
    Adrian_Broher Adrian_Broher ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    166
    Kannst du das nicht direkt in der Datenbank selbst per SQL Statement erledigen?
     

  3. #3
    RaketenPeter RaketenPeter ist offline Mitglied Silber
    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.
     

  4. #4
    Avatar von shutdown
    shutdown shutdown ist offline Mitglied Smaragd
    Registriert seit
    Jun 2004
    Beiträge
    1.026
    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!

    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!

  5. #5
    RaketenPeter RaketenPeter ist offline Mitglied Silber
    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;
     

  6. #6
    Avatar von shutdown
    shutdown shutdown ist offline Mitglied Smaragd
    Registriert seit
    Jun 2004
    Beiträge
    1.026
    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!

  7. #7
    RaketenPeter RaketenPeter ist offline Mitglied Silber
    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 !
     

  8. #8
    Avatar von shutdown
    shutdown shutdown ist offline Mitglied Smaragd
    Registriert seit
    Jun 2004
    Beiträge
    1.026
    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!

  9. #9
    RaketenPeter RaketenPeter ist offline Mitglied Silber
    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!
     

  10. #10
    Avatar von shutdown
    shutdown shutdown ist offline Mitglied Smaragd
    Registriert seit
    Jun 2004
    Beiträge
    1.026
    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!

  11. #11
    RaketenPeter RaketenPeter ist offline Mitglied Silber
    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

  1. SQL Vergleich zweier Tabellen
    Von LordDarkness im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 11.07.10, 12:39
  2. Antworten: 0
    Letzter Beitrag: 01.08.07, 14:23
  3. [C] Vergleich zweier SQL-Tabellen
    Von Buba235 im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 12.07.06, 12:02
  4. Vergleich zweier Werte mit: Min (a,b)
    Von Jai im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 21.11.05, 10:20
  5. Vergleich Inhalt zweier Dateien
    Von schokoriese im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 21.12.03, 23:00