Oracle SQL*Loader (sqlldr)

Der SQL*Loader ist ein externes Tool, dass zum Laden von Dateien in Datenbank-Tabellen
benutzt wird.
vom Loader verwendete Dateien Aufruf Syntax gültige Schlüsselwörter Aufruf Beispiel Laden von ASCII Dateien Tabelle "DEPT" Datei "controldat.ctl" Datei "daten.csv"
Vom Loader verwendete Dateien: Control-Datei Dort steht welche Daten-Datei in welchem Format geladen werden soll Daten-Datei Hier stehen die zu ladenden Daten Discard-Datei Dort stehen Zeilen aus der Datendatei die nicht verarbeitet wurden Bad-Datei Hier werden Zeilen eingetragen, die die Datenbank nicht akzeptiert hat Log-Datei In dieser Datei werden Informationen über den Ladevorgang eingetragen Inhalt Aufruf Syntax: SQLLOAD Schlüsselwort=Wert [,Schlüsselwort=Wert,...] Inhalt Gültige Schlüsselwörter: userid -- ORACLE username/password control -- Control file name log -- Log file name bad -- Bad file name data -- Data file name discard -- Discard file name discardmax -- Number of discards to allow (Standard alle) skip -- Number of logical records to skip (Standard 0) load -- Number of logical records to load (Standard alle) errors -- Number of errors to allow (Standard 50) rows -- Number of rows in conventional path bind array or between direct path data saves (Standard: Konventioneller Pfad 64, Direkter Pfad all) bindsize -- Size of conventional path bind array in bytes (Standard 65536) silent -- Suppress messages during run (header,feedback,errors,discards,partitions) direct -- use direct path (Standard FALSE) parfile -- parameter file: name of file that contains parameter specifications parallel -- do parallel load (Standard FALSE) file -- File to allocate extents from skip_unusable_indexes -- disallow/allow unusable indexes or index partitions (Standard FALSE) skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable (Standard FALSE) commit_discontinued -- commit loaded rows when load is discontinued (Standard FALSE) readsize -- Size of Read buffer (Standard 1048576) Inhalt Aufruf Beispiel: sqlldr userid=Benutzer/Kennwort@Datenbankname control=controldat.ctl data=daten.dat Zum Zeitpunkt des Aufrufes müssen Sie sich im Verzeichnis befinden, indem auch die Dateien controldat.ctl und daten.dat stehen. Das Verzeichnis, indem sich das Programm sqlldr befindet, muß sich in der Pathangabe (autoexec.bat) wiederfinden. Inhalt Laden von ASCII Dateien Im folgenden Beispiel, werden ASCII Daten aus einer Datei mit Namen 'daten.csv' geladen. Das Schlüsselwort APPEND gibt an, das die Daten an eine bestehende Tabelle angehängt werden. Wenn APPEND nicht angegeben wurde und die Tabelle ist bereits mit Daten gefüllt, bricht der Ladevorgang ab. Inhalt Die Tabelle die Tabelle "DEPT" muss bereits existieren - der SQL*Loader legt sie nicht an. Sie kann mit folgendem Scrpt angelegt werden. CREATE TABLE DEPT ( DEPTNO NUMBER (13), DNAME VARCHAR2 (100), LOC VARCHAR2 (100)); Die Tablespace- und Storageangaben sind der einfachheit halber weggelassen worden. Inhalt Datei controldat.ctl: LOAD DATA INFILE 'daten.csv' APPEND INTO TABLE DEPT FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (DEPTNO, DNAME, LOC) Inhalt Datei daten.csv: 1,Produktion,"Bonn" 2,"Vertrieb",Erftstadt 3,"Consulting",Frechen 4,Buchhaltung,"Köln" 5,"Lager",Niederembt 6,Marketing,"Bergheim" 7,"Einkauf","Berlin" Inhalt