Alex_winf01 Geschrieben 22. September 2008 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\.
Alex_winf01 Geschrieben 22. September 2008 Autor 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?
Amstelchen Geschrieben 22. September 2008 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
Alex_winf01 Geschrieben 22. September 2008 Autor 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?
Amstelchen Geschrieben 22. September 2008 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
Alex_winf01 Geschrieben 22. September 2008 Autor 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?
Alex_winf01 Geschrieben 22. September 2008 Autor 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.
Amstelchen Geschrieben 22. September 2008 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
Alex_winf01 Geschrieben 23. September 2008 Autor 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.
Amstelchen Geschrieben 23. September 2008 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
dr.dimitri Geschrieben 24. September 2008 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden