Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Oracle Datum Format ändern

Empfohlene Antworten

Veröffentlicht

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

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

Äh....

Jetzt nochmal für Anfänger bitte :D

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

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

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! :)

Also falls ich das jetzt mal so ausprobiere kann aber nix kaputt gehen oder? :D

Oder speichert der die Änderungen direkt auch ohne COMMIT?

Es kann nichts kaputt gehen. ;)

Du machst danach einfach ein Rollback und alles ist wieder im alten Zustand.

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

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

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 :(

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... ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.