|
Steuerdatei Impressum |
Die SteuerdateiDie Steuerdatei kann eine Reihe von Befehlen enthalten. Die Reihenfolge der Befehle ist relevant. Es stehen unter anderem folgende Befehle zur Verfügung:
Der Befehl "load data" kann keine besondere Bedeutung. Er kann in besonderen Spezialfällen durch den Befehl "continued load" ersetzt werden. KommentareKommentare können an beliebiger Stelle der Steuerdatei eingebracht werden. Sie beginnen mit zwei waagerechten Bindestrichen und gehen bis zum Ende der Zeile. OptionenBestimmte Einstellungen sind sowohl als Kommandozeilen-Parameter als auch in der Steuerdatei einstellbar. Für die Beschreibung der einzelnen Parameter siehe unten. Der Syntax in der Steuerdatei ist wie folgt: options (<paramter1>=wert1, <parameter2>=wert2, ... ) Beispiel: Laden ohne Redo (unrecoverable)Einstellung in der Steuerdatei: recoverable Redo-Informationen schreiben unrecoverable keine Redo-Informationen schreiben Der Ladevorgang mit der Einstellung "unrecoverable" ist erheblich schneller. Sie bewirkt, daß über den Ladevorgang keine Redo-Informationen von der Datenbank geschrieben werden. Je nach Datenbank-Modus (Archive-Log-Mode) kann es passieren, daß die Daten in bestimmten Fehlerfällen verloren gehen können. Um dies zu verhindern, sollte nach dem Ladevorgang eine Komplettsicherung der Datenbank vorgenommen werden. Einstellung des Zeichensatzes (characterset)Einstellung in der Steuerdatei: Damit Umlaute und Sonderzeichen korrekt umgesetzt werden, ist die Angabe des Zeichensatzes, in dem die externen Datendateien vorliegen, anzugeben. Für den Windows-Zeichensatzs ist dies WE8ISO8859P1, für DOS WE8PC850. Beispiel: Vorsicht: Wenn der Zeichensatz nicht gesetzt ist, so wird die Definition der Umgebungsvariable NLS_LANG verwendet. Das direkte Laden (siehe Kapitel 3) erwartet in diesem Fall jedoch, das die Daten in demselben Zeichensatz vorliegen, der dem Zeichensatz der Datenbank entspricht. Aus diesem Grund sollte der Zeichensatz immer angegeben werden. Laden in nicht leere Tabellen (insert, append, replace, truncate)Einstellung in der Steuerdatei: insert Laden nur in leere Tabellen möglich
(default) Vorsicht: Bei "replace" und "truncate" werden alle Daten der betreffenden Tabelle vorher gelöscht, unabhängig davon, welche Daten beim Ladevorgang hinzugefügt werden. Alle Daten der Tabelle sind unwiederbringlich verloren! Leerzeichen beibehalten (preserve blanks)Einstellung in der Steuerdatei: preserve blanks Leerzeichen werden nicht abgeschnitten Normalerweise werden bei festen Feldlängen führende und nachfolgende Leerzeichen abgeschnitten. Durch die Angabe von "preserve blanks" läßt sich dieses verhindern. Festlegung der Dateinamen (infile, badfile, discardfile)Einstellung in der Steuerdatei: infile <dateiname> externe
Eingabedatei Die Dateinamen sind in einfache Hochkommata (') einzuschließen. Beispiel: Je nach Version der Oracle-Software kann es notwendig sein, das Zeichen Backslash (\) zu maskieren. Beispiel: Datensätze zusammenfassen (concatenate)Einstellung in der Steuerdatei: concatenate <anzahl> feste Anzahl von Zeilen zusammenfassen Dieser Befehl bewirkt das eine definierte Anzahl von Zeilen in der Eingabedatei logisch zusammengefaßt werden, weil in der Eingabedatei nicht alle Daten eines Datensatzes in einer Zeile plaziert werden können. Beispiel: Angabe der Zieltabelle (into table)Einstellung in der Steuerdatei: into table <tabelle> Zieltabelle in der die Daten abgelegt werden soll Weitere Einstellungsmöglichkeiten je Tabelle sind "when" und "trailing". Bedingtes Laden (when)Einstellung in der Steuerdatei: when <bedingung1> and <bedingung2> ... Bedingung, ob die Daten in die Tabelle (siehe "into table") geladen werden sollen Wenn es vom Inhalt der Daten abhängt, in welche Tabelle die Daten geschrieben werden sollen, so ist mit der when-Klausel die entsprechende Bedingung zu definieren. Auf diese Weise lassen sich Verteiler implementieren. Beispiel: into table stornierte_auftraege when status='S' Fehlende leere Endspalten (trailing nullcols)Einstellung in der Steuerdatei: trailing nullcols Fehlende leere Endspalten ignorieren Wenn in der Eingabedatei leere Felder am Ende der Datei fehlen, weil Leerzeichen am Ende einer Zeile entfernt wurden, verhindert "trailing nullcols", daß diese Zeilen zu Fehlern führen. Die entsprechenden Spalten in der Datenbanktabelle erhalten dann den Wert NULL (leerer Wert). Dieses Vorgehen funktioniert jedoch nicht, bei absoluter Positionierung (siehe oben). Definition der FelderFür jedes Feld muß der Spaltenname in der Datenbanktabelle, die Position innerhalb der Eingabedatei, der Datentyp und mögliche Feldende- oder Einschlußzeichen. Position innerhalb der EingabedateiEs gibt zwei Möglichkeiten, die Position eines Feldes in der Eingabedatei zu bestimmen. Bei der absoluten Positionierung wird die Start- und Endespalte innerhalb des logischen Datensatzes angegeben. Beispiel: Bei der relativen Positionierung wird davon ausgegangen, daß alle Felder von links nach rechts angegeben werden (siehe auch Kapitel 2.12.3). Beispiel: DatentypenNormalerweise ist es nicht nötig, die Datentypen der jeweiligen Felder anzugeben. Die Felder werden automatisch in die Typen der entsprechenden Tabellenspalten konvertiert. Eine Angabe der Datentypen muß nur bei binären Daten erfolgen. Die drei wesentlichen Datentypen sind "char", "decimal external" und "date". Bei Daten, die ein Datum repräsentieren, ist das Datumsformat anzugeben. Beispiel: Trennung von FeldernWenn die Feldpositionen relativ zu einander angegeben werden, muß klar sein, wo ein Feld endet und das nächste beginnt. Dazu wird entweder ein Endezeichen ("terminated by") oder Einschlußzeichen ("enclosed by") oder beides festgelegt. Beispiel: In den Beispiel wird die Auftragsnummer von einem Leerzeichen, Tabulatorzeichen oder dem Zeilenende terminiert (whitespace). Der Auftragsnummer folgt immer ein Komma und das Datum ist immer geklammert. Auch der optionale Einschluß ist möglich: datum optionally enclosed by '(' and ')' Das Datum kann geklammert sein. Leere FelderWenn Felder vollständig aus Leerzeichen bestehen, so ist über den Befehl "nullif" die Datenbankspalte auf den leeren Wert NULL konvertierbar. Beispiel: Weitere Bedingungen, die zu NULL-Werten führen sind möglich. |
Load Daten Fremddaten Laden Steuerdatei controlfile control file load data options unrecoverable recoverable load data characterset insert append replace truncate preserve blanks infile badfile discardfile concatenate into table when trailing nullcols