Slang Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Hallo! Ich hab hier eine Tabelle in Oracle mit ca. 30000 Zeilen. Dabei gibt es mehrere Spalten in denen ein Datum steht. Jetzt hab ich folgendes Problem: Ich hab eine Spalte Geburtsdatum und in dieser Spalte steht das Datum manchmal so: DD.MM.YYYY manchmal so: DD.MM.YY und manchmal so: YYYYMMDD Kann ich irgendwie alle in das Format DD.MM.YYYY umwandeln? Hab jetzt erstmal eine select anweisung geschrieben die mir alle zeilen ausgibt in denen das Datum nicht dem richtigen Format entspricht. Aber wie kann ich das jetzt dabei ändern? MfG Stefan Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Hallo Slang, versuche es doch mal mit der Funktion to_date(Datum, Format). Du könntest doch in einer Schleife die Daten in eine Variable (hier: Datum) schreiben und sie in das entsprechende Format konvertieren. LG, Jusky Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slang Geschrieben 13. August 2003 Autor Teilen Geschrieben 13. August 2003 Äh.... Jetzt nochmal für Anfänger bitte Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Nun, mit der Funktion kannst du ein Datum in ein bestimmtest Format umwandeln. Z.B. neues_Datum = to_date(altes_Datum, 'DD.MM.YYYY') Jetzt musst du es nur noch hinbekommen, dass du eine Schleife um das Ganze herumbastelst, die deine einzelnen (im Format falschen) Datumsangaben aufgreift und formatiert. Am besten macht man das mit PL/SQL. Dazu deklarierst du vorher in dem DECLARE-Teil einen Cursor, in dem du deine Ergebnisse schreibst: Z.B. cursor Name_des_Cursors is select Datum into falsches_Datum from Tabelle where Format = 'XXXXXXX'; Im Hauptprogramm (fängt mit BEGIN an), kommt dann die eigentliche Formatierung: for rec in Name_des_Cursors loop neues_datum = to_date(falsches_Datum, 'DD.MM.YYYY'); Update Tabelle Set Datum = neues_datum where....; end loop; So ungefähr müsste es dann aussehen. Du musst dann aber noch die benötigten Variablen im DECLARE-Teil deklarieren. Hoffe, das hilft dir weiter! LG, Jusky Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slang Geschrieben 13. August 2003 Autor Teilen Geschrieben 13. August 2003 Hauptprogramm? Cursor? Also ich sitze hier vor meinem Oracle SQL Plus und hab keine Ahnung wie ich das jetzt anstellen soll... Bin doch blutiger Anfänger in Oracle Naja, trotzdem schonmal vielen Dank. Vielleicht bekomm ich ja noch was auf die Reihe hier Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Hey, jeder fängt mal klein an! - Zur Not gibt es ja noch etliche Suchmaschinen, die man durchforsten kann. Hier und hier findest du gute Tutorials zum Thema. Da kannst du dich ja mal einlesen... Ich wünsch dir jedenfalls viel Erfolg! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slang Geschrieben 13. August 2003 Autor Teilen Geschrieben 13. August 2003 Also falls ich das jetzt mal so ausprobiere kann aber nix kaputt gehen oder? Oder speichert der die Änderungen direkt auch ohne COMMIT? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Es kann nichts kaputt gehen. Du machst danach einfach ein Rollback und alles ist wieder im alten Zustand. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slang Geschrieben 13. August 2003 Autor Teilen Geschrieben 13. August 2003 OK, Danke Werde dann mal ein bißchen googeln... Hab aber direkt noch eine Frage. Hab noch eine Spalte "Name" und manchmal sind die Namen so geschrieben: Mustermann manchmal so: MUSTERMANN und manchmal so: mustermann Die Namen sollen alle geändert werden, dass sie so aussehen: Mustermann Ist das auch möglich? Reicht ja erstmal wenn ich nur ein eindeutiges "JA" oder "NEIN" bekomme, dann weiss ich wenigstens ob es sich lohnt danach auch bei google zu suchen. MfG Stefan Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Ja, das geht. Dazu müsstest du dir jeden Namen vornehmen (also wieder eine Schleife ) und den ersten Buchstaben in einen Groß- und den Rest in Kleinbuchstaben umwandeln. Hierbei dürften folgende Funktionen interessant sein: - substr (String, Anfangsstelle, Länge) => zum Ausschneiden eines Teilstrings im String - Upper => wandelt Klein- in Großbuchstaben um -Lower => Gegenteil zu Upper LG, Jusky Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slang Geschrieben 13. August 2003 Autor Teilen Geschrieben 13. August 2003 Danke nochmal... Ich glaube die ganze Sache hat sich erledigt. Cheffe hat grade gemerkt, dass das Programm mit dem auf die Datenbank zugegriffen wird das Datum und die Namen auch so erkennt, egal in welchem Format und es automatisch richtig anzeigt.... Jetzt hab ich mir das Suchen zwar gespart, aber so werde ich das dann wohl auch nicht richtig lernen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 13. August 2003 Teilen Geschrieben 13. August 2003 Nagut, dann vielleicht beim nächsten Mal... Irgendwann wirst du sicher noch Gelegenheit dazu bekommen. Jedenfalls weißt du ja dann, wo du suchen kannst... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.