fraggle666
Goto Top

Access DB in eine Oracle 10g migrieren

Hallo zusammen,

folgendes Problem...

Ich habe hier eine alte Access Datenbank deren Tabellen usw. ich in eine Oracle 10g importieren möchte.
Die Access DB soll komplett durch die Oracle ersetzt werden.

Wie kann ich einen solchen export bzw. import der Datensätze vornehmen? Hat da zufällig jemand etwas Erfahrung sammeln können?

Ich habe schon eine Andeutung in Richtung Access in .csv umwandeln gehört... :/

Danke im voraus!

Content-ID: 69587

Url: https://administrator.de/contentid/69587

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

fraggle666
fraggle666 27.09.2007 um 14:32:00 Uhr
Goto Top
Hallo zusammen,

also zuerst muss ich die Access Datenbank in eine .csv Datei konvertieren, was Access als Funktion anbietet.
Dieses .cvs File kann nun mit dem SQL*Loader in Oracle eingebunden werden, sollte es zumindest face-smile


Hier mal mein Versuch und das Ergebnis, ich glaube ich bin dicht dran....

Hier der SQL*Loader Befehl
sqlldr scott/tiger control=/tools/loader.ctl log=/tools/test.log

Die Loader.ctl
load data
infile '/tools/mydata.csv'
into table emp
fields terminated by "," optionally enclosed by '"' ### die "" sind eigentlich ' " '
( empno, ename, sal, deptno ) ### also ein Anführungszeichen in zwei einzelnen Hochkommas

Dann meine .csv Datei
10001 , "scott tiger" , 1000 , 40
10002 , "frank naude" , 500 , 20

Und die Log Datei mit Fehler:

SQL*Loader: Release 10.2.0.1.0 - Production on Thu Sep 27 12:10:02 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Control File: /tools/loader.ctl
Data File: /tools/mydata.csv
Bad File: /tools/mydata.bad
Discard File: none specified

(Allow all discards)

Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional

Table EMP, loaded from every logical record.
Insert option in effect for this table: INSERT

Column Name Position Len Term Encl Datatype
---------- ----- ---- ---- ---------------------
EMPNO FIRST * , O(") CHARACTER
ENAME NEXT * , O(") CHARACTER
SAL NEXT * , O(") CHARACTER
DEPTNO NEXT * , O(") CHARACTER

Record 1: Rejected - Error on table EMP, column EMPNO.
ORA-01438: Wert gro?er als die angegebene Gesamststellenzahl, die fur diese Spalte zulassig ist

Record 2: Rejected - Error on table EMP, column EMPNO.
ORA-01438: Wert gro?er als die angegebene Gesamststellenzahl, die fur diese Spalte zulassig ist


Table EMP:
0 Rows successfully loaded.
2 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.


Space allocated for bind array: 66048 bytes(64 rows)
Read buffer bytes: 1048576

Total logical records skipped: 0
Total logical records read: 2
Total logical records rejected: 2
Total logical records discarded: 0

Run began on Thu Sep 27 12:10:02 2007
Run ended on Thu Sep 27 12:10:03 2007

Elapsed time was: 00:00:00.23
CPU time was: 00:00:00.06
fraggle666
fraggle666 27.09.2007 um 14:49:49 Uhr
Goto Top
Argh, manchmal sollte man doch einfach mal nach dem einfachsten suchen...

Der Wert war tatsächlich auf nur 4 Zeichen begrenzt, peinlich aber wahr.
Nach ändern der Tabellen Parameter funktionierte die migration.

Hier noch ein netter Link dazu:

http://www.orafaq.com/faqloadr.htm