Alex_winf01 Geschrieben 22. September 2008 Teilen Geschrieben 22. September 2008 Hallo liebe Forengemeinde, ich experimentiere gerade mit dem SQL-Loader herum. Also, ich mache folgendes: Datei Stammdaten.ctl steht folgendes: LOAD DATA INFILE 'Stammdaten.dat' INSERT INTO TABLE Stammdaten FIELDS TERMINATED BY';' ( Nummer, NAME1, NAME2, STRASSE, PLZ, ORT, TELEFON, FAX, ID, SONSTIGES, ANSP_NAME, ANSP_TEL, ANSP_NAME1, ANSP_TEL1, ) begindata Dann rufe ich den SQL-Loader auf: sqlldr benutzer/db@db1 control = D:\Pfad\Stammdaten.ctl Nun bekomme ich folgende Fehlermeldungen: SQL*LOADER-500: Datei(Stammdaten.dat) kann nicht geöffnet werden SQL*LOADER-553: Datei nicht gefunden SQL*LOADER-509: Systemfehler: Das System kann die angegebene Datei nicht finden Was kann das sein? Die Datei heisst wirklich so und liegt tatslächlich unter D:\Pfad\. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 22. September 2008 Autor Teilen Geschrieben 22. September 2008 Also, wenn ich die Dateien direkt in das Verzeichnis Oracle/bin abspeicher, bekomme ich folgende Fehlermeldung: SQL*LOADER-275: Daten sind in Kontrolldatei, aber "INFILE*" wurde nicht angegeben Hat jemand dafür eine Lösung oder einen Rat? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 22. September 2008 Teilen Geschrieben 22. September 2008 1. dein controlfile ist fehlerhaft (komma als feldtrenner nach letztem feld) 2. du *solltest* im controlfile den absoluten pfad (oder ein INFILE in einen im PATH enthaltenen pfad) angeben. sql loader geht folgendermassen (u.a. in dieser reihenfolge) vor: 1. credentials überprüfen 2. controlfile auf existenz prüfen 3. zieltabellen und -felder prüfen 4. INFILE prüfen s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 22. September 2008 Autor Teilen Geschrieben 22. September 2008 Also, folgender "Fortschritt": Die Datei stammdaten.ctl sieht jetzt wie folgt aus: LOAD DATA INFILE 'D:\Pfad\Stammdaten.dat' INSERT INTO TABLE Stammdaten FIELDS TERMINATED BY';' TRAILING NULLCOLS ( Nummer, NAME1, NAME2, STRASSE, PLZ, ORT, TELEFON, FAX, ID, SONSTIGES, ANSP_NAME, ANSP_TEL, ANSP_NAME1, ANSP_TEL1 ) Ich rufe den SQL-Loader auf: sqlldr benutzer/db@db1 control = Stammdaten.ctl Commit-Punkt erreicht - Anzahl der logischen Datensätze 64 Was mache ich da jetzt falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 22. September 2008 Teilen Geschrieben 22. September 2008 es würde sich jetzt direkt anbieten, ins log zu sehen, hm? dort findest du die zusammenfassung, wieviele datensätze als BAD und wieviele als DISCARD markiert sind. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 22. September 2008 Autor Teilen Geschrieben 22. September 2008 @ Amstelchen In die Tabelle wurde nichts importiert und an die Log-Datei komme ich nicht ran. "UN-Philosopie". Nehme einem Entwickler sämtliche Admin-Rechte. Was bedeutet denn die Fehlermeldung? Kann das am Semikolon liegen oder am Punkt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 22. September 2008 Autor Teilen Geschrieben 22. September 2008 Ich habe da noch eine andere Idee, an der es liegen kann: Ich habe Spalten mit Number(1,3), aber ich importiere hier rein Werte z. B. 1,33. Kann es daran liegen? Dann sollte sich das Prob eigentlich löschen, wenn ich den Datentyp auf Number ändere. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 22. September 2008 Teilen Geschrieben 22. September 2008 In die Tabelle wurde nichts importiert und an die Log-Datei komme ich nicht ran. kann ich mir nicht vorstellen; sql loader legt das logfile normalerweise im selben pfad wie das INFLE an. häng sqlldr zusätzlich noch zu control= ein log= dran, dann kannst du den pfad vom log steuern. Nehme einem Entwickler sämtliche Admin-Rechte. zum anlegen eines logfiles braucht man keine adminrechte, wenn man sql loader ausführen kann/darf. Spalten mit Number(1,3) das ist unüblich, und meist unangebracht, da die gesamtzahl der stellen kleiner ist als die nachkommagenauigkeit. Dann sollte sich das Prob eigentlich löschen, wenn ich den Datentyp auf Number ändere richtig. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 23. September 2008 Autor Teilen Geschrieben 23. September 2008 ich denke, dass Prob hat sich erledigt. Aber nochmal zur log-Datei. Da komm ich tatsächlich nicht ran. Sobald ich die Log-Datei aufrufen möchte, bekomme ich die Fehlermeldung, dass ich keine ausreichende Berechtigung hierzu habe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 23. September 2008 Teilen Geschrieben 23. September 2008 dann leite das logfile mittels log= in eine datei um, die in einem von dir lesbaren verzeichnis zum liegen kommt. wenn du die sqlldr.exe aufrufen kannst, hast du diese option ja immerhin. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 24. September 2008 Teilen Geschrieben 24. September 2008 Commit-Punkt erreicht - Anzahl der logischen Datensätze 64 Was mache ich da jetzt falsch? Hmm eigentlich nichts. Das ist eigentlich die Ausgabe, wenn Daten importiert wurden. Bist Du sicher, dass Du in der richtigen Tabelle im richtigen Schema nachgesehen hast? Dim 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.