Oracle SQL-Server: Migrationsproblem...

Varitaxx

Benutzer
Beiträge
7
Hallo,
habe derzeit ein Problem bei der Übernahme von Daten aus .csv-Tabellen. Dieses betrifft Spalten, die mit Numeric(mit Decimalangaben, Bsp 7(2))-Formatierung. Die Daten aus der csv. (mit "." als Dezimal-Trennung) werden ohne Dezimaltrennung übernommen (Bsp: 19.0 als 190 usw.)

Da ich mit dem Programm erst seit einem Tag arbeite, konnte ich noch nicht herausfinden, wo man ggf. das so einstellen kann, das die Daten korrekt (also mit dem "." als Dezimal-Trennung) übernommen werden.
Werte werden in der Tabelle mit "," als Dezimaltrennung geschrieben (per Formatbefehl: alter session set NLS_NUMERIC_CHARACTERS = ' . ,')

Wo kann man es bei Oracle SQL Server (3.2.x) einstellen bzw. falls nicht, hat jemand eine Lösung?

Grüße
 
Werbung:
Ich vermute mal deine Einstellung liegt irgendwo im Bereich Sprache, da ein Punkt im Deutschen ja keine Dezimaltrennung darstellt. Ich kenne aber Oracle nicht, daher kann ich dir als Workaround nur Excel empfehlen: Öffnen, Punkte mit Komma ersetzen und wieder speichern...
 
Habe schon bei den Einstellungen Oracle SQL Developer (Datenbank/NLS) bei Dzimaltrennung von "," auf "." umgestellt. Hilft leider nicht :(
Workaround mit Excel: > a) 500 Tabellen :o und b) Grundsätzlich "." mit "," ersetzen haut nicht hin, da ich dann auch u.a. ins Datumformat gehe und dort auf 29,03,2016 umstellen würde. Was mir gleich das nächste Problem bescheren würde. Klar könnte mir jetzt ne Routine schreiben, die alle Files durchläuft und "." gegen "," ersetzt. Aber wie gesagt, da würde ich auch ungewünscht andere Formate ändern.
 
Kommt sowieso nur bei einer einmaligen Sache in Frage, bei regelmäßigen Imports wirst du tatsächlich besser eine Oracle Lösung suchen. Gibts da nicht son sündhäft teuren Support?
 
Da Tabellen schon angelegt sind und "nur" Inhalt eingefügt werden muß, frage ich mich, ob External Tables da die richtige Wahl wäre, zumal es auch noch jede Menge Limitierungen mitsich bringt...
Daten stammen urspr. aus ner Informix-DB, exportiert in .csv - Format. Haben da angesetzt und Number-Format mit "," als Dezimaltrennung übernommen. Nun kann OSQLD die Daten richtig einlesen. Gibt zwar noch diverse andere Problemchen, die ich händerisch lösen muß, aber ich glaube, ich komme nicht drumherum um alle > 500 Tabellen einzeln zu bearbeiten. Das beginnt schon u.a. damit die "Date"-Spalten teilweise DD.MM.YYYY oder YYYY-MM-DD HH24:MI:SS zu formatieren. Oder die Größe von Char-Felder nachjustieren...
Mir ist klar, das das Projekt schon reichlich Zeit in Anspruch nehmen wird... :o
 
Ja die gibt es noch,
es ist schon versucht worden direkt von Informix -> Oracle zu migrieren, soll aber nicht geklappt haben.
Von daher der etwas umständlichere Weg...
 
Oracle Database Gateway for ODBC schon probiert ? Damit kannst du in Oracle aus einer fremden DB lesen als wäre es eine Oracle DB, die Übersetzung der Datentypen übernimmt der ODBC Treiber (ok, fast zumindestens). Es gibt auch einen für Informix, der kostet aber soviel ich weiss. Der ODBC ist gratis.
 
Tatsächlich hat es nicht wirklich geklappt. DB mußte ein zweites mal angelegt werden.
Da mein AG zudem noch zu geizig ist, eine gescheite Migrations-SW zu kaufen, lief es darauf hinaus, tatsächlich über 2500 Tabellen von Hand zu migrieren und einzustellen. Eine bescheuerte Lösung, die zudem auch noch zu Lasten meiner Handgelenke samt Sehnen ging, da auch noch die Tabellenspalten per Mausklick angepasst werden mussten. Nuja, Hauptsache die Firma spart Geld ^^
 
Werbung:
Zurück
Oben