Hallo.Ich muss Daten von mehreren Oracle 7 DBs in eine Oracle 8 DB importieren, und zwar regelmässig.
Mein Ansatz: SQL DTS Paket mit Termin.
Folgendes Problem: Von Oracle 7 kann man nicht ohne weiteres die Daten in Oracle 8 oder SQL-Server oder Access 2K blasen, da sich dann teilweise falsche DAten bilden (Aus Kommawerten wird zB immer der Wert "-").
Maßnahmen: Ich habe eine Access97 DB angelegt, dort die Quelltabellen per ODBC verknüpft. Diese sind ok. Nun gehe ich mit dem DTS an die Accesstabellen und ouste diese in den Oracle 8 Server.
Klappt auch. Leider nur bei einer Tabelle nicht. Ursache soweit ich es ausfindig machen konnte: Die
Anzahl der Spalten der Tabelle: Es sind genau 115 Spalten. Selektiere ich nur die ersten 103 zum
Import, dann klappt es reibungslos. Importiere ich eine mehr dann läuft der Vorgang ins NIrvana (heute
Nach 10 Stunden ohne Fortschritt) und ohne Fehlermeldung. Nehme ich einfach nur die letzten 10 oder 15 Spalten, klappt es auch. Es muss am Ziel Oracle Server liegen. Kann man dort eine Konfiguration vornehmen, die diese hohe Spaltenzahl zulässt?
Alternativ würde es helfen, wenn mir jemand eine Stap by Step Anleitung zum Umgang mit den Oracle Tools EXP/IMP liefern könnte!
Danke & Gruss Markus
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Hallo Markus,
leider ist ein Teil meines Textes (die geklammerten Texte) als HTML-Code
interpretiert worden, deshalb alles nochmal!
Hallo Markus,
Export und Import sind relativ einfach zu handhaben.
Export aus Oracle7:
exp73 (USER)/(PASSWORT)@(SERVICE)
Enter fetch buffer size: 8192 (Return)
Export File > Dateinamen angeben (Return)
(1) Entire database, (2)User ... > 2 für User wählen (Return)
Export Grants > yes (Return)
Export table data > yes (Return)
Compress extents > yes (Return)
Und dann sollte es losgehen und irgendwann auch fertig sein.
Der Import läuft ähnlich:
Oracle8 kann problemlos Oracle7 Dump-Files lesen.
Sollen die Daten in der Oracle8-DB unter einem anderen Usernamen eingespielt werden,
ist der einfachste Weg der Import über einen DBA-User:
imp80 system/(PASSWORT)@SERVICE fromuser=(oracle7user) touser=(oracle8user) file=(oracle7_dumpfile) log=(log-Datei)
sind die User identisch dann:
imp80 (user)/(PASSWORT)@SERVICE file=(oracle7_dumpfile) log=(log-Datei)
Einfach mal ausprobieren, falls Probleme gibt, nochmal melden
Gruß jewer