
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