ODBC Import nach Access - Felddatentyp falsch -> wie korrigieren??

12/02/2008 - 15:17 von Andreas Meffert | Report spam
Hallo,

ich habe folgendes Problem: nach dem Import einer Tabelle via ODBC aus einer
Oracle Datenbank heraus nach Access 2003 haben einige Felder der Tabelle den
falschen Datentyp, z.B. sind einige Schlüsselfelder auf TEXT eingestellt
statt auf Integer.
Hier meine Import-Anweisung:
DoCmd.TransferDatabase acImport, "ODBC",
"ODBC;DSNÛ_Oracle;UID=user;PWD=password;LANGUAGE=us english;" &
"DATABASE=ORACLESERVER", acTable, "dba.attribute", "dba_attribute"

Der Versuch, die Felder anschließend via VBA
db.Execute "ALTER TABLE dba_attribute ALTER COLUMN comp_key INTEGER"
zu àndern bricht mit der Fehlermeldung "Nicht genügend Arbeitsspeicher" ab.
Die Tabelle enthàlt ca. 5Mio. Datensàtze (4 Spalten), Tendenz steigend.

Die Tabelle wird in zyklischen Abstànden immer wieder neu in Access
importiert, eine automatisierte Lösung wàre daher optimal.
Meine Suche im Netz blieb bisher leider erfolglos.

Wie kann ich das Datenfeld korrekt als Integer deklarieren? Gibt es evtl.
sogar eine Möglichkeit, die gleich beim Import zu erledigen?

Danke für jeden Tipp.
Andreas
 

Lesen sie die antworten

#1 Stefan Hoffmann
12/02/2008 - 15:29 | Warnen spam
hallo Andreas,

Andreas Meffert schrieb:
ich habe folgendes Problem: nach dem Import einer Tabelle via ODBC aus einer
Oracle Datenbank heraus nach Access 2003 haben einige Felder der Tabelle den
falschen Datentyp, z.B. sind einige Schlüsselfelder auf TEXT eingestellt
statt auf Integer.


Das bedeutet, das der Oracle-Datentyp nicht kompatibel ist. Das kann
z.B. ein DECIMAL/NUMBER sein, mit mehr Stellen als ein LONG INTEGER in
Access/Jet.

Der Versuch, die Felder anschließend via VBA
db.Execute "ALTER TABLE dba_attribute ALTER COLUMN comp_key INTEGER"
zu àndern bricht mit der Fehlermeldung "Nicht genügend Arbeitsspeicher" ab.
Die Tabelle enthàlt ca. 5Mio. Datensàtze (4 Spalten), Tendenz steigend.


Eine Access-Datenbank kann maximal 2GB groß werden. Bei deiner Änderung
erreichst du da sicherlich dieses Limit.

Die Tabelle wird in zyklischen Abstànden immer wieder neu in Access
importiert, eine automatisierte Lösung wàre daher optimal.
Meine Suche im Netz blieb bisher leider erfolglos.


Prinzipiell: Warum keine verknüpfte Tabellen, bzw. Sichten nutzen?

Wie kann ich das Datenfeld korrekt als Integer deklarieren? Gibt es evtl.
sogar eine Möglichkeit, die gleich beim Import zu erledigen?


Lege dir eine Passthrough-Abfrage oder eine Sicht auf Oracle an, die die
Spalte entsprechend konvertiert.

btw, mpda.clientserver ist für solche Themen die bessere Gruppe.


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen