Fänerk Geschrieben 4. August 2011 Teilen Geschrieben 4. August 2011 hi, ich habe ein Problem: wir müssen aus einer Oracle Datenbank Daten in eine Access Datenbank importieren. Die ODBC verbindung steht zu der Oracle DB und der Import der benötigten Tabellen klappt auch. es handelt sich dabei um personaldaten (name, anschrift, arbeitsstunden, gehalt/stunde, ...) Nur sind 2 Spalten komplett falsch formatiert, bzw. werden nicht korrekt übergeben: 1. die Spalte, wo die Arebitszeit angegeben wird (eine Zahl zwischen 0 und 1 mit bis zu 5 nachkomma stellen, eine halbtagskraft hat z.B. 0,5) da werden aber nur 1 oder 0 übernommen, also ab dem Komma wird die Zahl abgeschnitten. 2. die Spalte für Gehalt/stunde (normalerweise z.B. 6,34 oder 24,86) hier werden die Kommata einfach ignoriert und es steht dann 634 oder 2486 in der Access DB ich habe schon gegooglt, aber nichts in die Richtung gefunden. in der Access DB sind die Spalten richtig Formatiert, also das die 5 Nachkomma stellen auch angezeigt werden usw. was wir geändert hatten in letzter Zeit: wir haben die Oracle DB auf einen neuen Server installiert (vorher W2K3 32-Bit Oracle 11g1, jetzt W2K8 64-Bit Oracle 11g2) der Oracle Client auf dem system, wo die Abfrage durch geführt wird ist 11g1, aber ich habe es bei mir lokal mit dem 11g2 Client versucht und es kommt das gleich dabei raus. wurde mit Access 2003 und 2010 von mir getestet, je auch WinXP und Win7 wenn ihr noch mehr infos braucht, gebe ich die euch ich weiß nciht mehr weiter und so wie es jetzt ist läuft unserer Zeitausgabe für die Mitarbeiter nicht und auch die Personaldatenbank gibt falsche/fehlerhafte Werte aus, mit denen nicht gearbeitet werden kann hoffe einer kennt das Problem oder hat nen hinweis, wonach ich schauen soll... lg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 4. August 2011 Teilen Geschrieben 4. August 2011 (eine Zahl zwischen 0 und 1 mit bis zu 5 nachkomma stellen, eine halbtagskraft hat z.B. 0,5) Ist das wirklich eine Zahl (Datentyp NUMBER) oder ein VARCHAR2 Feld, das als Zahl missbraucht wird. Wie sieht es in der Access Datenbank aus? Ist dort der Datentyp identisch? Falls mit einer implizieten Konvertierung von VARCHAR auf FLOAD gearbeitet wird, könnten evtl. die Ländereinstellungen Probleme bereiten. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fänerk Geschrieben 4. August 2011 Autor Teilen Geschrieben 4. August 2011 ich gucke gleich noch nach, wie die spalten genau definiert sind. ich weiß, dass bei access beide spalten als dezimal mit 2 nachkommastellen definiert sind. wie es in oracle aussieht gucke ich gleich, is gerade viel zu tun... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fänerk Geschrieben 4. August 2011 Autor Teilen Geschrieben 4. August 2011 editieren geht leider nicht mehr... also, in der Oracle DB ist die betreffende Spalte folgendermaßen definiert: Name - Datentyp - Größe - Skalierung STDSTUNDENSATZ - NUMBER - 18 - 5 die gleiche Spalte in Access: Feldname - Felddatentyp - Feldgröße - Genauigkeit - Dezimalstellen STDSTUNDENSATZ - Zahl - Dezimal - 18 - 5 weiß einer wo dran das liegen kann? stimmt vllt irgendwie die Sprache nicht oder iwas in die Richtung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fänerk Geschrieben 8. August 2011 Autor Teilen Geschrieben 8. August 2011 hat keiner eine idee? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fänerk Geschrieben 8. August 2011 Autor Teilen Geschrieben 8. August 2011 Problem behoben Ursache: die Ländereinstellung im ODBC Treiber war falsch. Habe erst mit einer Datei DNS gearbeitet (dazu sind die Länderienstellungen in der Registry zu ändern) arbeite jetzt aber mit einer system dns, da dort die ländereinstellungen leichter zu ändern sind. 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.