LOAD (Befehl)
Der Befehl LOAD lädt große Datenmengen effizient in eine Db2® -Tabelle.
Der Befehl LOAD lädt Daten auf Seitenebene, umgeht das Auslösen des Auslösers und die Protokollierung und verzögert die Überprüfung von Integritätsbedingungen und die Indexerstellung, bis die Daten in die Db2 -Tabelle geladen wurden.
Auf dem Server gespeicherte Daten können in Form einer Datei, eines Bands oder einer benannten Pipe vorliegen. Daten, die auf einem über Fernzugriff verbundenen Client gespeichert sind, können in Form einer vollständig qualifizierten Datei oder einer benannten Pipe vorliegen. Daten können auch über einen benutzerdefinierten Cursor oder unter Verwendung eines benutzerdefinierten Scripts oder einer benutzerdefinierten Anwendung geladen werden. Wenn das Attribut COMPRESS für die Tabelle auf YESgesetzt ist, unterliegen die geladenen Daten einer Komprimierung für alle Daten und Datenbankpartitionen, für die ein Wörterverzeichnis in der Tabelle vorhanden ist, einschließlich Daten im XML-Speicherobjekt der Tabelle.
Quick Link zu Dateitypmodifikatoren für das Dienstprogramm LOAD.
Einschränkungen
Das Ladedienstprogramm unterstützt kein Laden von Daten auf Hierarchieebene. Das Ladedienstprogramm ist nicht kompatibel mit Bereichsclustertabellen. Das Ladedienstprogramm unterstützt den Parameter NOT LOGGED INITIALLY für die Anweisungen CREATE TABLE oder ALTER TABLE nicht.
Bereich
Dieser Befehl kann in einer einzigen Anforderung für mehrere Datenbankpartitionen abgesetzt werden.
Berechtigung
- DATAACCESS
- Berechtigung DATAACCESS für das Schema der Tabelle
- Berechtigung LOAD für die Datenbank oder Berechtigung SCHEMA_LOAD für das Schema sowie die folgenden Zugriffsrechte:
- Zugriffsrecht INSERT oder INSERTIN für die Tabelle, wenn das Ladedienstprogramm im Einfügemodus (INSERT), im Beendigungsmodus (TERMINATE) zur Beendigung einer vorherigen LOAD INSERT-Operation oder im Neustartmodus (RESTART) zum erneuten Starten einer vorherigen LOAD INSERT-Operation aufgerufen wird.
- Zugriffsrecht INSERT oder INSERTIN und DELETE oder DELETEIN für die Tabelle, wenn das Ladedienstprogramm im Ersetzungsmodus (REPLACE), im Beendigungsmodus (TERMINATE) zur Beendigung einer vorherigen LOAD REPLACE-Operation oder im Neustartmodus (RESTART) zum erneuten Starten einer vorherigen LOAD REPLACE-Operation aufgerufen wird.
- Zugriffsrecht INSERT oder INSERTIN für die Ausnahmetabelle, wenn eine solche Tabelle im Rahmen der Ladeoperation verwendet wird.
- Um Daten in eine Tabelle mit geschützten Spalten laden zu können, muss die Sitzungsberechtigungs-ID direkt oder indirekt über eine Gruppe oder eine Rolle über LBAC-Berechtigungsnachweise verfügen, die Schreibzugriff auf alle geschützten Spalten in der Tabelle zulassen. Andernfalls schlägt der Ladevorgang fehl und ein Fehler (SQLSTATE 5U014) wird zurückgegeben.
- Für das Laden von Daten in eine Tabelle mit geschützten Zeilen muss die Sitzungsberechtigungs-ID einen Sicherheitskennsatz enthalten, der die folgenden Kriterien erfüllt:
- Der Sicherheitskennsatz ist Teil der Sicherheitsrichtlinie, die die Tabelle schützt.
- Der Sitzungsberechtigungs-ID wurde direkt oder indirekt über eine Gruppe oder eine Rolle der Sicherheitskennsatz für Schreibzugriff oder für alle Zugriffsberechtigungen erteilt.
Wenn Sie Daten in eine Tabelle mit geschützten Zeilen laden, enthält die Zieltabelle eine einzige Spalte mit dem Datentyp DB2SECURITYLABEL. Wenn die Eingabedatenzeile keinen Wert für diese Spalte enthält, wird diese Zeile zurückgewiesen, es sei denn, der Änderungswert
usedefaultsfür den Dateityp wird im Befehl LOAD angegeben. In diesem Fall wird der Sicherheitskennsatz verwendet, den Sie für den Schreibzugriff von der Sicherheitsrichtlinie, die die Tabelle schützt, besitzen. Wenn Sie keinen Sicherheitskennsatz für Schreibzugriff haben, wird die Zeile zurückgewiesen und es wird mit der Verarbeitung der nächsten Zeile fortgefahren. - Wenn für eine Tabelle mit geschützten Zeilen die Option REPLACE angegeben ist, muss die Sitzungsberechtigungs-ID die Berechtigung zum Löschen der Tabelle haben.
- Wenn die Option LOCK WITH FORCE angegeben ist, ist eine der Berechtigungen SYSMAINT, SYSCTRL oder SYSADM erforderlich.
- Wenn für die Tabelle die Zeilenzugriffssteuerung aktiviert ist, erfordert LOAD REPLACE für diese Tabelle die Möglichkeit, die Tabelle zu löschen. Insbesondere müssen Sie entweder CONTROL für die Tabelle oder DROPIN oder SCHEMAADM für das Schema, das die Tabelle enthält, oder DBADM für die Tabelle haben.
Da der Instanzeigner auch Eigner aller LOAD-Prozesse (und im Allgemeinen auch aller DB2-Serverprozesse) ist, und all diese Prozesse die Kennung des Instanzeigners verwenden, um auf benötigte Dateien zuzugreifen, muss der Instanzeigner über Lesezugriff auf Eingabedatendateien verfügen. Diese Eingabedatendateien müssen für den Instanzeigner unabhängig davon, wer den Befehl aufruft, lesbar sein.
Erforderliche Verbindung
Datenbank. Wenn das implizite Herstellen von Verbindungen aktiviert ist, wird eine Verbindung zur Standarddatenbank hergestellt.
Instanz. Eine explizite Zuordnung ist nicht erforderlich. Wenn eine Verbindung zur Datenbank hergestellt wurde, wird versucht, eine implizite Zuordnung zur lokalen Instanz zu erhalten.
Befehlssyntax
Befehlsparameter
- CLIENT
- Gibt an, dass sich die zu ladenden Daten auf einem über Fernzugriff verbundenen Client befinden. Diese Option wird ignoriert, wenn die Ladeoperation nicht über einen fernen Client aufgerufen wird. Diese Option wird ignoriert, wenn sie in Verbindung mit dem Dateityp CURSOR angegeben wird.Hinweis:
- Die Modifikatoren dumpfile und lobsinfile und die Option XML FROM verweisen auf Dateien auf dem Server, selbst wenn das Schlüsselwort CLIENT angegeben ist.
- Während einer fernen Ladeoperation wird keine Codepagekonvertierung durchgeführt. Wenn sich die Codepage der Daten von der des Servers unterscheidet, sollte die Datencodepage mit dem Modifikator
codepageangegeben werden.
Im folgenden Beispiel soll eine Datendatei (/u/user/data.del), die sich auf einem über Fernzugriff verbundenen Client befindet, in MYTABLE in der Serverdatenbank geladen werden:db2 load client from /u/user/data.del of del modified by codepage=850 insert into mytable - FROM filename | remotefilename | pipename | device | cursorname
- Gibt die Datei, die Pipe, die Einheit oder den Cursor an, die/der auf eine SQL-Anweisung mit den zu ladenden Daten verweist. Wenn es sich bei der Eingabequelle um eine Datei, eine Pipe oder eine Einheit handelt, muss sie sich inder Datenbankpartition befinden, in der sich die Datenbank befindet, es sei denn, die Option CLIENT ist angegeben. Die maximale Länge des Parameters Dateiname ist
256 - length of absolute path to file - 1.Ein ferne_dateiname bezieht sich auf eine Datei, die sich im fernen Speicher befindet, wie z. B. IBM® Cloud Object Storage oder Amazon Simple Storage Service (S3), auf die über einen Speicherzugriffsalias zugegriffen wird. Lokaler Staging-Bereich ist erforderlich, um die vom fernen Speicherserver übertragene Datei temporär zu speichern; siehe Voraussetzungen für fernen Speicher. Die Syntax für ferne Dateinamen lautet wie folgt:DB2REMOTE://<alias>//<storage-path>/<file-name>Werden mehrere Namen angegeben, werden diese in der angegebenen Reihenfolge verarbeitet. Wenn es sich bei dem zuletzt angegebenen Element um eine Bandeinheit handelt, wird der Benutzer zum Einlegen eines weiteren Bands aufgefordert. Gültige Antwortoptionen:- c
- Weiter. Mit der Verwendung der Einheit fortfahren, die die Warnung generiert hat (z. B. wenn ein neues Band angehängt wurde).
- d
- Einheit beenden. Die Verwendung der Einheit stoppen, die die Warnung generiert hat (z. B. wenn es keine Bänder mehr gibt).
- t
- Beenden. Alle Einheiten werden beendet.
Hinweis:- Verwenden Sie den vollständig qualifizierten Dateinamen. Bei einem fernen Server muss der vollständig qualifizierte Dateiname verwendet werden. Wenn sich die Datenbank in derselben Datenbankpartition befindet wie das aufrufende Modul, können relative Pfade verwendet werden.
- Wenn Daten mit dem Befehl EXPORT unter Verwendung der Prozedur ADMIN_CMD in eine Datei exportiert werden, ist die ID des abgeschirmten Benutzers Eigner der Datendatei. In der Regel kann der Instanzeigner nicht auf diese Datei zugreifen. Um LOAD vom Befehlszeilenprozessor oder über die Prozedur ADMIN_CMD auszuführen, muss die Instanzeigner-ID auf die Datendatei zugreifen können. Dem Instanzeigner muss also Lesezugriff auf die Datendatei erteilt werden.
- Das Laden von Daten aus mehreren IXF-Dateien wird unterstützt, wenn die Dateien zwar physisch voneinander getrennt, aber logisch eine Datei sind. Es wird nicht unterstützt, wenn die Dateien sowohl logisch als auch physisch voneinander getrennt sind. Wenn mehrere logisch und physisch getrennte Dateien angegeben werden, werden alle Dateien außer der ersten Datei ignoriert. (Mehrere physische Dateien werden logisch als eine Datei betrachtet, wenn sie alle mit einem einzigen Aufruf des Befehls EXPORT erstellt werden.)
- Beim Laden von Daten auf einem Clientsystem müssen die Daten entweder eine vollständig qualifizierte Datei oder eine benannte Pipe sein.
- Beim Laden von XML-Daten aus Dateien in Tabellen in einer Umgebung mit partitionierten Datenbanken müssen die XML-Datendateien für alle Datenbankpartitionen, in denen das Laden stattfindet, gelesen werden können.
- OF filetype
- Gibt das Format der Daten an:
- ASC (ASCII-Format mit universellen Zeilenbegrenzern)
- DEL (ASCII-Format ohne universelle Zeilenbegrenzer)
- IXF (Integration Exchange Format, PC-Version) ist ein ausschließlich von DB2-Datenbanken verwendetes Binärformat
- CURSOR (ein Cursor, der für eine Anweisung SELECT oder VALUES deklariert wurde).
Hinweis:- Wenn zum Laden von XML-Daten in eine Tabelle in einer Umgebung mit verteilten Datenbanken der Dateityp CURSOR verwendet wird, werden die Modi PARTITION_ONLY und LOAD_ONLY nicht unterstützt.
- Bei einem Ladevorgang mit dem Dateityp CURSOR, bei dem das Schlüsselwort DATABASE während der Anweisung DECLARE CURSOR angegeben wurde, erstellt der Ladevorgang zum Abrufen der Daten intern eine separate Anwendung. Wenn das Schlüsselwort DATABASE dagegen nicht angegeben wird, ruft der Ladevorgang Daten in derselben Anwendung ab. Bei diesen beiden unterschiedlichen Fällen kann es auch zu unterschiedlichem Verhalten von Sperren kommen. Insbesondere wenn Sie derzeit für das Schlüsselwort DATABASE die aktuell verbundene Datenbank (und ggf. dieselbe Benutzer-ID und dasselbe Kennwort wie für die aktuelle Verbindung) angeben, kann es Fälle geben, in denen ein Sperrenproblem auftritt (z. B. je nach Datenbankkonfiguration ein Wartestatus für Sperren oder eine Überschreitung der Sperrzeit). Dieses kann durch Weglassen des Schlüsselworts DATABASE umgangen werden.
- LOBS FROM lob-path
- Der Pfad zu den Datendateien mit den zu ladenden LOB-Werten. Der Pfad muss mit einem Schrägstrich (/) enden. Wenn die Option CLIENT angegeben wird, muss der Pfad vollständig qualifiziert sein. Die Namen der LOB-Datendateien werden in der Hauptdatendatei (ASC, DEL oder IXF) in der Spalte gespeichert, die in die LOB-Spalte geladen wird. Es können maximal 999 Pfade angegeben werden. Dadurch wird implizit das LOBSINFILE-Verhalten aktiviert.
Diese Option wird ignoriert, wenn sie in Verbindung mit dem Dateityp CURSOR angegeben wird.
- MODIFIED BY file-type-mod
- Gibt die Optionen für den Dateitypmodifikator an. Siehe Dateitypmodifikatoren für das Dienstprogramm LOAD.
- METHOD
- L
- Gibt die Nummern der ersten und der letzten Spalte an, aus denen Daten geladen werden sollen. Eine Spaltennummer ist die Position (in Byte) in Relation zum Anfang einer Datenzeile. Die Nummerierung beginnt mit 1. Diese Methode kann nur mit ASC-Dateien verwendet werden und ist die einzige gültige Methode für diesen Dateityp.
- NULL INDICATORS null-indicator-list
- Diese Option kann nur verwendet werden, wenn der Parameter METHOD L angegeben ist, d. h. wenn die Eingabedatei eine ASC-Datei ist. Die Nullanzeigerliste ist eine durch Kommas getrennte Liste mit positiven ganzen Zahlen, die die Spaltennummer für die einzelnen Nullanzeigerfelder angibt. Die Spaltennummer ist die Position des Nullanzeigerfelds (in Byte) in Relation zum Anfang einer Datenzeile. Für jedes im Parameter METHOD L angegebene Datenfeld muss es einen Eintrag in der Nullanzeigerliste geben. Die Spaltennummer 0 (null) gibt an, dass das entsprechende Datenfeld immer Daten enthält.
Der Wert
Yin der Nullanzeigerspalte gibt an, dass die Spalten leer (NULL) sind. Jedes Zeichen außerYin der Nullanzeigerspalte gibt an, dass die Spaltendaten nicht NULL sind und dass die durch die Option METHOD L angegebenen Spaltendaten geladen werden.Das Nullanzeigerzeichen kann mit der Option MODIFIED BY geändert werden.
- N
- Gibt die Namen der Spalten in der Datendatei an, die geladen werden sollen. Die Groß-/Kleinschreibung dieser Spaltennamen muss mit der Groß-/Kleinschreibung der entsprechenden Namen in den Systemkatalogen übereinstimmen. Für jede Tabellenspalte, für die die Dateneingabe erforderlich ist, muss es einen entsprechenden Eintrag in der METHOD N-Liste geben. Beispiel: Wenn die Datenfelder F1, F2, F3, F4, F5 und F6 sowie die Tabellenspalten C1 INT, C2 INT NOT NULL, C3 INT NOT NULL und C4 INT vorhanden sind, ist
method N (F2, F1, F4, F3)eine gültige Anforderung, währendmethod N (F2, F1)ungültig ist. Diese Methode kann nur für den Dateityp IXF oder CURSOR verwendet werden. - P
- Gibt die Feldnummern (Zählung beginnt bei 1) der Eingabedatenfelder an, die geladen werden sollen. Für jede Tabellenspalte, für die die Dateneingabe erforderlich ist, muss es einen entsprechenden Eintrag in der METHOD P-Liste geben. Beispiel: Wenn die Datenfelder F1, F2, F3, F4, F5 und F6 sowie die Tabellenspalten C1 INT, C2 INT NOT NULL, C3 INT NOT NULL und C4 INT vorhanden sind, ist
method P (2, 1, 4, 3)eine gültige Anforderung, währendmethod P (2, 1)ungültig ist. Diese Methode kann nur für den Dateityp IXF, DEL oder CURSOR verwendet werden. Für den Dateityp DEL ist dies die einzige gültige Methode.Sie müssen wie im folgenden Beispiel gezeigt für jedes von der Methode P angegebene Feld eine entsprechende Spalte in der Aktionsanweisung angeben, sofern nicht alle berücksichtigten Spalten oder die ersten x Spalten geladen werden:db2 load from datafile1.del of del method P(1, 3, 4) replace into table1 (c1, c3, c4)
- XML FROM xml-path
- Gibt mindestens einen Pfad an, in dem XML-Dateien vorhanden sind. XDS-Daten sind in der Hauptdatendatei (ASC, DEL oder IXF) in der Spalte enthalten, die in die XML-Spalte geladen wird.
- XMLPARSE
- Gibt an, wie XML-Dokumente geparst werden. Wenn diese Option nicht angegeben wird, wird das Parsing-Verhalten für XML-Dokumente über den Wert des Sonderregisters CURRENT IMPLICIT XMLPARSE OPTION festgelegt.
- STRIP WHITESPACE
- Gibt an, dass Leerzeichen beim Parsen des XML-Dokuments entfernt werden.
- PRESERVE WHITESPACE
- Gibt an, dass Leerzeichen beim Parsen des XML-Dokuments nicht entfernt werden.
- XMLVALIDATE
- Gibt an, dass XML-Dokumente anhand eines Schemas geprüft werden, sofern zutreffend.
- USING XDS
- XML-Dokumente werden anhand des XML-Schemas geprüft, das in der XML-Datenkennung (XDS) in der Hauptdatendatei angegeben ist. Wird die Option XMLVALIDATE mit der Klausel USING XDS aufgerufen, wird das Schema, das für die Prüfung verwendet wird, standardmäßig durch das Attribut SCH der XML-Datenkennung bestimmt. Wenn in der XML-Datenkennung kein Attribut SCH vorhanden ist, wird nur dann eine Schemaprüfung ausgeführt, wenn von der Klausel DEFAULT ein Standardschema angegeben wird.
Die Klauseln DEFAULT, IGNORE und MAP können verwendet werden, um Verhalten bei der Schemafestlegung zu ändern. Diese drei optionalen Klauseln werden direkt auf die Spezifikationen der XML-Datenkennung angewendet und nicht gegenseitig für sich. Wenn ein Schema z. B. ausgewählt wird, weil es in der Klausel DEFAULT angegeben ist, wird es nicht ignoriert, wenn es auch von der Klausel IGNORE angegeben wird. Ebenso wird ein Schema, das ausgewählt wird, da es als erster Teil eines Paars in der Klausel MAP angegeben ist, nicht erneut zugeordnet, wenn es auch im zweiten Teil eines anderen Paars einer Klausel MAP enthalten ist.
- USING SCHEMA schema-sqlid
- XML-Dokumente werden anhand des XML-Schemas mit der angegebenen SQL-Kennung geprüft. In diesem Fall wird das Attribut SCH der XML-Datenkennung (XDS) für alle XML-Spalten ignoriert.
- USING SCHEMALOCATION HINTS
- XML-Dokumente werden anhand des Schemas geprüft, das in den Hinweisen zur XML-Schemaposition in den XML-Quellendokumenten angegeben ist. Wird im XML-Dokument kein Attribut schemaLocation gefunden, erfolgt keine Prüfung. Wenn die Klausel USING SCHEMALOCATION HINTS angegeben wird, wird das SCH-Attribut der XML-Datenkennung (XDS) für alle XML-Spalten ignoriert.
- IGNORE schema-sqlid
- Diese Option kann nur verwendet werden, wenn der Parameter USING XDS angegeben ist. Die Klausel IGNORE gibt eine Liste mit Schemata an, die ignoriert werden sollen, wenn sie von einem Attribut SCH angegeben werden. Wenn ein Attribut SCH in der XML-Datenkennung für ein geladenes XML-Dokument vorhanden ist und das durch das Attribut SCH angegebene Schema in der Liste der zu ignorierenden Schemata enthalten ist, findet keine Schemaprüfung für das geladene XML-Dokument statt.Hinweis:
Wenn ein Schema in der Klausel IGNORE angegeben wird, darf es in der linken Seite eines Schemapaars in der Klausel MAP nicht vorhanden sein.
Die Klausel IGNORE gilt nur für die XML-Datenkennung (XDS). Ein von der Klausel MAP zugeordnetes Schema wird nachfolgend nicht ignoriert, wenn es in der Klausel IGNORE angegeben ist.
- DEFAULT schema-sqlid
- Diese Option kann nur verwendet werden, wenn der Parameter USING XDS angegeben ist. Das durch die Klausel DEFAULT angegebene Schema ist das Schema, das für die Gültigkeitsprüfung verwendet werden soll, wenn die XML-Datenkennung (XDS) eines geladenen XML-Dokuments kein Attribut SCH zur Angabe eines XML-Schemas enthält.
Die Klausel DEFAULT hat Vorrang vor den Klauseln IGNORE und MAP. Wenn eine XML-Datenkennung die Klausel DEFAULT erfüllt, werden die IGNORE- und MAP-Spezifikationen ignoriert.
- MAP schema-sqlid
- Diese Option kann nur verwendet werden, wenn der Parameter USING XDS angegeben ist. Geben Sie über die Klausel MAP alternative Schemata an, die für jedes geladene XML-Dokument anstelle der Schemata verwendet werden sollen, die über das Attribut SCH einer XML-Datenkennung (XDS) angegeben sind. Die Klausel MAP gibt eine Liste mit Schemapaaren an, in der jedes Paar eine Zuordnung zwischen zwei Schemata darstellt. Das erste Schema im Paar stellt ein Schema dar, auf das in einer XML-Datenkennung über ein Attribut SCH verwiesen wird. Das zweite Schema im Paar stellt das Schema dar, das zum Durchführen der Schemaprüfung verwendet werden sollte.
Wenn ein Schema in der linken Seite eines Schemapaars in der Klausel MAP vorhanden ist, kann es nicht mehr auf die Klausel IGNORE angewendet werden.
Nach der Anwendung einer Schemapaarzuordnung ist das Ergebnis endgültig. Die Zuordnungsoperation ist nicht transitiv und das ausgewählte Schema wird daher anschließend nicht auf eine andere Schemapaarzuordnung angewendet.
Ein Schema kann nur einmal zugewiesen werden, d. h., es kann nur in der linken Seite eines Paares vorkommen.
- SAVECOUNT n
- Gibt an, dass das Ladedienstprogramm nach jeweils n Zeilen Konsistenzpunkte erstellen soll. Dieser Wert wird in eine Seitenanzahl konvertiert und auf Intervalle der Speicherbereichsgröße aufgerundet. Da an jedem Konsistenzpunkt eine Nachricht ausgegeben wird, sollte diese Option ausgewählt werden, wenn die Ladeoperation mit LOAD QUERY überwacht wird. Wenn der Wert n nicht ausreichend hoch ist, kann sich die Synchronisation der an jedem Konsistenzpunkt ausgeführten Aktivitäten auf die Leistung auswirken.
Der Standardwert ist null, d. h. Konsistenzpunkte werden nur bei Bedarf erstellt.
Diese Option ist nicht zulässig, wenn sie in Verbindung mit dem Dateityp CURSOR angegeben wird oder wenn eine Tabelle mit einer XML-Spalte geladen wird.
Der Parameter SAVECOUNT wird für nach Spalten organisierte Tabellen nicht unterstützt.
- ROWCOUNT n
- Gibt die Anzahl (n) der physischen Sätze in der Datei an, die geladen werden sollen. Wenn der Dateitypmodifikator
anyorderaktiviert ist, können beliebige n Zeilen aus der Datei geladen werden. Andernfalls werden die ersten n Zeilen geladen.Hinweis: Der Änderungswertanyorderfür den Dateityp ist für bestimmte Tabellentypen standardmäßig aktiviert. Weitere Informationen finden Sie unter anyorder. - WARNINGCOUNT n
- Stoppt die Ladeoperation nach n Warnungen. Setzen Sie diesen Parameter, wenn keine Warnungen erwartet werden, aber eine Überprüfung gewünscht wird, ob die richtige Datei und die richtige Tabelle verwendet werden. Wenn die Ladedatei oder die Zieltabelle nicht richtig angegeben sind, generiert das Ladedienstprogramm eine Warnung für jede Zeile, die es zu laden versucht, wodurch der Ladevorgang fehlschlägt. Wenn n null ist oder wenn diese Option nicht angegeben ist, wird die Ladeoperation unabhängig von der Anzahl der ausgegebenen Warnungen fortgesetzt.
- MESSAGES message-file
- Gibt das Ziel für Warnungen und Fehlernachrichten an, die während einer Ladeoperation auftreten. Wenn keine Nachrichtendatei angegeben ist, werden Nachrichten in die Standardausgabe geschrieben, sofern die Instanz nicht als Umgebung mit partitionierten Datenbanken konfiguriert ist. Wenn nicht der vollständige Pfad zur Datei angegeben ist, verwendet das Ladedienstprogramm das aktuelle Verzeichnis und das Standardlaufwerk als Ziel. Wenn der Name einer bereits vorhandenen Datei angegeben ist, hängt das Dienstprogramm die Informationen an.
Die Nachrichtendatei wird in der Regel am Ende der Ladeoperation mit Nachrichten gefüllt und ist daher nicht geeignet zur Überwachung des Fortschritts der Operation.
- TEMPFILES PATH temp-pathname
- Gibt den Namen des Pfads an, der beim Erstellen temporärer Dateien während einer Ladeoperation verwendet werden soll. Dieser sollte entsprechend der Serverdatenbankpartition vollständig qualifiziert sein.Temporäre Dateien belegen Speicherbereich im Dateisystem. Manchmal ist dieser Platzbedarf ziemlich beträchtlich. Die folgende Liste enthält eine Schätzung der Größe des Speicherbereichs im Dateisystem, den Sie für alle temporären Dateien zuordnen sollten:
- 136 Byte für jede vom Ladedienstprogramm generierte Nachricht.
- 15 KB für Systemaufwand, wenn die Datendatei Langfeld-Daten oder LOBs enthält. Diese Menge kann erheblich steigen, wenn Sie den Parameter INSERT angeben und bereits eine große Menge an Langfeld- oder LOB-Daten in der Tabelle vorhanden ist.
- Auf dem Server können der Speicherbereich, der der unformatierten Größe der Eingabedaten entspricht, wenn das Spaltenkomprimierungswörterverzeichnis erstellt wird, und die Datenquelle, z. B. eine Pipe oder ein Socket, nicht erneut geöffnet werden.
- INSERT
- Fügt die geladenen Daten zur Tabelle hinzu, ohne die vorhandenen Tabellendaten zu ändern.
Eine LOAD INSERT -Operation in eine nach Spalten organisierte Tabelle aktualisiert die Tabellenstatistik standardmäßig, wenn die Tabelle neu ist oder abgeschnitten wurde, und ist zu Beginn der Ladeoperation leer.
- REPLACE
- Löscht alle Daten aus der Tabelle und fügt die neuen Daten ein. Die Tabellendefinition und die Indexdefinitionen werden nicht geändert. Wenn Sie diese Option beim Versetzen von Daten zwischen Hierarchien angeben, können Sie nur die Daten für eine vollständige Hierarchie und nicht für einzelne untergeordnete Tabellen ersetzen.
Sie können diesen Parameter nicht verwenden, um Daten in temporale Tabellen für Systemzeitraum zu laden.
Eine LOAD REPLACE -Operation in eine nach Spalten organisierte Tabelle aktualisiert standardmäßig Tabellenstatistiken.
- KEEPDICTIONARY
- Ein vorhandenes Komprimierungswörterverzeichnis wird über die Operation LOAD REPLACE beibehalten.
Diese Option ist die Standardeinstellung für nach Zeilen organisierte Tabellen.
Wenn für das Attribut COMPRESS der Tabelle YES angegeben ist, werden die neu ersetzten Daten unter Verwendung des Wörterverzeichnisses komprimiert, das vor dem Aufruf der Ladeanforderung vorhanden war. Wenn bisher kein Wörterverzeichnis in der Tabelle vorhanden war, wird ein neues Wörterverzeichnis mit den Daten erstellt, die als Ersetzungsdaten in die Tabelle aufgenommen werden, sofern das Attribut COMPRESS der Tabelle auf YES gesetzt ist.
Die Datenmenge, die in diesem Fall für das Erstellen des Komprimierungswörterverzeichnisses erforderlich ist, unterliegt den ADC-Richtlinien für die automatische Wörterverzeichniserstellung. Diese Daten werden als unkomprimierte Daten in die Tabelle aufgenommen. Sobald das Wörterverzeichnis in die Tabelle eingefügt wurde, müssen die restlichen zu ladenden Daten mit diesem Wörterverzeichnis komprimiert werden. Eine Zusammenfassung finden Sie in der folgenden Tabelle.
Tabelle 1. LOAD REPLACE KEEPDICTIONARY Komprimieren Datenwörterverzeichnis für Tabellenzeilen ist vorhanden Wörterverzeichnis für XML-Speicherobjekte ist vorhanden1 Komprimierungswörterverzeichnis Datenkomprimierung YES YES YES Datenwörterverzeichnis für Tabellenzeilen und XML-Wörterverzeichnis beibehalten. Daten, die geladen werden sollen, werden komprimiert. YES YES NEIN Datenwörterverzeichnis für Tabellenzeilen beibehalten und neues XML-Wörterverzeichnis erstellen. Zu ladende Tabellenzeilendaten werden komprimiert. Nach der Erstellung des XML-Wörterverzeichnisses werden die restlichen zu ladenden XML-Daten komprimiert. YES NEIN YES Datenwörterverzeichnis für Tabellenzeilen erstellen und XML-Wörterverzeichnis beibehalten. Nach der Erstellung des Datenwörterverzeichnisses für Tabellenzeilen werden die restlichen zu ladenden Tabellenzeilendaten komprimiert. Zu ladende XML-Daten werden komprimiert. YES NEIN NEIN Neues Datenwörterverzeichnis für Tabellenzeilen und neues XML-Wörterverzeichnis erstellen. Nach der Erstellung der Wörterverzeichnisse werden die verbleibenden zu ladenden Daten komprimiert. NEIN YES YES Datenwörterverzeichnis für Tabellenzeilen und XML-Wörterverzeichnis beibehalten. Daten, die geladen werden sollen, werden nicht komprimiert. NEIN YES NEIN Datenwörterverzeichnis für Tabellenzeilen beibehalten. Daten, die geladen werden sollen, werden nicht komprimiert. NEIN NEIN YES Keine Auswirkung auf das Wörterverzeichnis für Tabellenzeilen. XML-Wörterverzeichnis beibehalten. Daten, die geladen werden sollen, werden nicht komprimiert. NEIN NEIN NEIN Ohne Auswirkung. Daten, die geladen werden sollen, werden nicht komprimiert. Hinweis:- Für das XML-Speicherobjekt einer Tabelle kann nur ein Komprimierungswörterverzeichnis erstellt werden, wenn die XML-Spalten der Tabelle in DB2 Version 9.7 oder einer höheren Version hinzugefügt werden bzw. wenn die Tabelle mithilfe einer Onlineoperation zum Versetzen von Tabellen migriert wird.
- Wird die LOAD REPLACE KEEPDICTIONARY -Operation unterbrochen, kann das Dienstprogramm LOAD nach dem Absetzen von LOAD RESTART oder LOAD TERMINATE wiederhergestellt werden. Das bestehende Wörterverzeichnis für XML-Speicherobjekte ist nach der Recovery aus einer unterbrochenen Operation LOAD REPLACE KEEPDICTIONARY möglicherweise nicht mehr vorhanden. Wenn LOAD RESTART verwendet wird, wird ein neues Wörterverzeichnis für XML-Speicherobjekte erstellt.
- RESETDICTIONARY
- Diese Anweisung weist die Verarbeitung von LOAD REPLACE an, ein neues Wörterverzeichnis für das Tabellendatenobjekt zu erstellen, wenn das Attribut COMPRESS der Tabelle auf YES gesetzt ist.
Wenn das Attribut COMPRESS auf NO gesetzt ist und bereits ein Wörterverzeichnis in der Tabelle enthalten ist, wird dieses entfernt und es wird kein neues Wörterverzeichnis in die Tabelle eingefügt.
Diese Option ist die Standardeinstellung für nach Spalten organisierte Tabellen.
Für nach Spalten organisierte Tabellen können Sie LOAD REPLACE … RESETDICTIONARY nicht in einem Subset von Datenbankpartitionen angeben (SQL27906N). Wenn Sie die Option OUTPUT_DBPARTNUMS einschließen, müssen alle Datenbankpartitionen angegeben werden.
Ein Komprimierungswörterverzeichnis kann nur mit einem einzigen Benutzerdatensatz erstellt werden. Wenn die Ladedatei eine Größe von Null hat und bereits ein Wörterverzeichnis vorhanden ist, wird das Wörterverzeichnis nicht beibehalten. Die Datenmenge, die für das Erstellen eines Komprimierungswörterverzeichnisses mit dieser Anweisung erforderlich ist, unterliegt nicht den ADC-Richtlinien für die automatische Wörterverzeichniserstellung. Eine Zusammenfassung finden Sie in der folgenden Tabelle.
Tabelle 2. LOAD REPLACE RESETDICTIONARY Komprimieren Datenwörterverzeichnis für Tabellenzeilen ist vorhanden Wörterverzeichnis für XML-Speicherobjekte ist vorhanden1 Komprimierungswörterverzeichnis Datenkomprimierung YES YES YES Neue Wörterverzeichnisse erstellen2. Wird die Option DATA CAPTURE CHANGES in der Anweisung CREATE TABLE oder ALTER TABLE aktiviert, wird das aktuelle Datenwörterverzeichnis für Tabellenzeilen beibehalten (und als früheres Komprimierungswörterverzeichnis bezeichnet). Nach der Erstellung der Wörterverzeichnisse werden die verbleibenden zu ladenden Daten komprimiert. YES YES NEIN Neue Wörterverzeichnisse erstellen2. Wird die Option DATA CAPTURE CHANGES in der Anweisung CREATE TABLE oder ALTER TABLE aktiviert, wird das aktuelle Datenwörterverzeichnis für Tabellenzeilen beibehalten (und als früheres Komprimierungswörterverzeichnis bezeichnet). Nach der Erstellung der Wörterverzeichnisse werden die verbleibenden zu ladenden Daten komprimiert. YES NEIN YES Neue Wörterverzeichnisse erstellen. Nach der Erstellung der Wörterverzeichnisse werden die verbleibenden zu ladenden Daten komprimiert. YES NEIN NEIN Neue Wörterverzeichnisse erstellen. Nach der Erstellung der Wörterverzeichnisse werden die verbleibenden zu ladenden Daten komprimiert. NEIN YES YES Wörterverzeichnisse entfernen. Daten, die geladen werden sollen, werden nicht komprimiert. NEIN YES NEIN Datenwörterverzeichnis für Tabellenzeilen entfernen. Daten, die geladen werden sollen, werden nicht komprimiert. NEIN NEIN YES Verzeichnis für XML-Speicherobjekt entfernen. Daten, die geladen werden sollen, werden nicht komprimiert. NEIN NEIN NEIN Ohne Auswirkung. Es werden keine Tabellendaten komprimiert. Hinweise:- Für das XML-Speicherobjekt einer Tabelle kann nur ein Komprimierungswörterverzeichnis erstellt werden, wenn die XML-Spalten der Tabelle in DB2 Version 9.7 oder einer höheren Version hinzugefügt werden bzw. wenn die Tabelle mithilfe einer Onlineoperation zum Versetzen von Tabellen migriert wird.
- Wenn ein Wörterverzeichnis vorhanden ist und das Komprimierungsattribut aktiviert ist, es jedoch keine Datensätze zum Laden in die Tabellenpartition gibt, kann kein neues Wörterverzeichnis erstellt werden und die Operation RESETDICTIONARY behält das vorhandene Wörterverzeichnis nicht bei.
- RESETDICTIONARYONLY
- Mit dieser Option wird ein auf der Eingabedatei basierendes Spaltenkomprimierungswörterverzeichnis erstellt, ohne dass Zeilen geladen werden. Sie können diese Option verwenden, um das Komprimierungswörterverzeichnis zu erstellen, bevor Sie Daten mithilfe von SQL-basierten Dienstprogrammen aufnehmen.
Diese Option gilt nur für nach Spalten organisierte Tabellen.
LOAD REPLACE … RESETDICTIONARYONLY kann nicht für ein Subset von Datenbankpartitionen angegeben werden (SQL27906N). Wenn Sie die Option OUTPUT_DBPARTNUMS einschließen, müssen alle Datenbankpartitionen angegeben werden.
- TERMINATE
- Einer von vier Modi, in denen das Dienstprogramm LOAD ausgeführt werden kann. Beendet eine zuvor unterbrochene Ladeoperation und macht die Operation bis zum Zeitpunkt ihres Starts rückgängig, selbst wenn Konsistenzpunkte durchlaufen wurden. Die an der Operation beteiligten Tabellenbereiche werden wieder auf den Normalstatus zurückgesetzt und alle Tabellenobjekte werden konsistent gemacht (Indexobjekte werden möglicherweise als ungültig gekennzeichnet, wodurch dann beim nächsten Zugriff automatisch eine Indexneuerstellung durchgeführt wird). Wenn es sich bei der beendeten Ladeoperation um eine Operation LOAD REPLACE handelt, wird die Tabelle nach der Operation LOAD TERMINATE auf eine leere Tabelle abgeschnitten. Wenn es sich bei der beendeten Ladeoperation um eine Operation LOAD INSERT handelt, behält die Tabelle nach der Operation LOAD TERMINATE alle ihre ursprünglichen Datensätze. Eine Zusammenfassung der Wörterverzeichnisverwaltung finden Sie in Tabelle 3.
Mit der Option LOAD TERMINATE werden die Tabellenbereiche nicht aus dem Status 'Backup anstehend' genommen.
- RESTART
- Startet eine unterbrochene Ladeoperation erneut. Die Ladeoperation wird automatisch ab dem letzten Konsistenzpunkt in der Lade-, Erstellungs- oder Löschphase fortgesetzt. Eine Zusammenfassung der Wörterverzeichnisverwaltung finden Sie in Tabelle 4.Der Parameter RESTART wird für die folgenden Tabellen nicht unterstützt:
- Nach Spalten organisierte Tabellen
- Zufallsverteilungstabellen unter der Verwendung der Methode zur Generierung von Zufallswerten
- INTO table-name
- Gibt die Datenbanktabelle an, in die die Daten geladen werden sollen. Bei dieser Tabelle darf es sich nicht um eine Systemtabelle, eine deklarierte temporäre Tabelle oder eine erstellte temporäre Tabelle handeln. Es kann ein Aliasname oder der vollständig qualifizierte oder ein nicht qualifizierter Tabellenname angegeben werden. Ein qualifizierter Tabellenname hat das Format
schema.tablename. Wenn ein nicht qualifizierter Tabellenname angegeben wird, wird die Tabelle mit dem Parameter CURRENT SCHEMA qualifiziert.Wenn die Datenbanktabelle implizit verdeckte Spalten enthält, müssen Sie angeben, ob Daten für die verdeckten Spalten in die Ladeoperation eingeschlossen werden sollen. Verwenden Sie eine der folgenden Methoden, um anzugeben, ob Daten für verdeckte Spalten eingeschlossen werden:- Verwenden Sie die einfügespalte, um explizit die Spalten anzugeben, in die Daten eingefügt werden sollen.
db2 load from delfile1 of del insert into table1 (c1, c2, c3,...) - Verwenden Sie einen der Dateitypänderungswerte für verdeckte Spalten: Geben Sie implicitlyhiddeninclude an, wenn die Eingabedatei Daten für die verdeckten Spalten enthält, oder implicitlyhiddenmissing, wenn die Eingabedatei solche Daten nicht enthält.
db2 load from delfile1 of del modified by implicitlyhiddeninclude insert into table1 - Verwenden Sie die Registry-Variable DB2_DMU_DEFAULT auf der Serverseite, um das Standardverhalten für den Fall festzulegen, dass Dienstprogramme für das Versetzen von Daten auf Tabellen mit implizit verdeckten Spalten treffen. Geben Sie IMPLICITLYHIDDENINCLUDE an, wenn Dienstprogramme davon ausgehen, dass die implizit verdeckten Spalten eingeschlossen sind, bzw. IMPLICITLYHIDDENMISSING, wenn Dienstprogramme davon ausgehen, dass die implizit verdeckten Spalten nicht eingeschlossen sind.
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE db2 load from delfile1 of del insert into table1
- Verwenden Sie die einfügespalte, um explizit die Spalten anzugeben, in die Daten eingefügt werden sollen.
- insert-column
- Gibt die Tabellenspalte an, in die die Daten eingefügt werden sollen.Das Ladedienstprogramm kann Spalten, deren Namen mindestens ein Leerzeichen enthalten, nicht parsen. Beispiel:
db2 load from delfile1 of del noheader method P (1, 2, 3, 4, 5, 6, 7, 8, 9) insert into table1 (BLOB1, S2, I3, Int 4, I5, I6, DT7, I8, TM9)Dieser Prozess schlägt aufgrund der SpalteInt 4fehl. Setzen Sie zur Behebung dieses Problems solche Spaltennamen in doppelte Anführungszeichen:db2 load from delfile1 of del noheader method P (1, 2, 3, 4, 5, 6, 7, 8, 9) insert into table1 (BLOB1, S2, I3, "Int 4", I5, I6, DT7, I8, TM9) - FOR EXCEPTION table-name
- Gibt die Ausnahmetabelle an, in die fehlerhafte Zeilen kopiert werden. Kopiert wird jede Zeile, die gegen einen eindeutigen Index oder einen Primärschlüsselindex verstößt. Wenn Sie einen nicht qualifizierten Tabellennamen angeben, wird der Tabellenname mit dem aktuellen Schema qualifiziert. Die Tabelle kann keine nach Spalten organisierte Tabelle sein.
Informationen, die in die Ausnahmetabelle geschrieben werden, werden nicht in die Speicherauszugsdatei geschrieben. In einer Umgebung mit partitionierten Datenbanken muss eine Ausnahmetabelle für die Datenbankpartitionen definiert werden, auf denen die zu ladende Tabelle definiert ist. Sonst enthält die Speicherauszugsdatei Zeilen, die nicht geladen werden können, da sie ungültig sind oder Syntaxfehler haben.
Beim Laden von XML-Daten wird die Verwendung der Klausel FOR EXCEPTION zur Angabe einer LOAD-Ausnahmetabelle in den folgenden Fällen nicht unterstützt:- Bei Verwendung von kennsatzbasierter Zugriffssteuerung (LBAC)
- Beim Laden von Daten in eine partitionierte Tabelle
- NORANGEEXC
- Gibt an, dass eine Zeile nicht in die Ausnahmetabelle eingefügt wird, wenn sie aufgrund einer Bereichsverletzung zurückgewiesen wird.
- NOUNIQUEEXC
- Gibt an, dass eine Zeile nicht in die Ausnahmetabelle eingefügt wird, wenn sie aufgrund eines Verstoßes gegen eine eindeutige Integritätsbedingung zurückgewiesen wird.
- STATISTICS USE PROFILE
- Weist den Ladevorgang an, die Statistikdaten während des Ladevorgangs entsprechend dem für diese Tabelle definierten Profil zu erfassen. Dies ist der Standardwert für nach Spalten organisierte Tabellen. Das Profil muss vor dem Absetzen des Befehls LOAD erstellt werden. Das Profil wird mit dem Befehl RUNSTATS erstellt. Wenn für nach Zeilen organisierte Tabellen das Profil nicht existiert und dieser Parameter angegeben wird, wird eine Warnung zurückgegeben und es werden keine Statistikdaten erfasst. Wenn bei nach Spalten organisierten Tabellen das Profil nicht vorhanden ist und dieser Parameter angegeben wird, verwendet das Dienstprogramm LOAD dieselben RUNSTATS -Standardbefehlsoptionen wie bei einer automatischen RUNSTATS-Operation.
Während des Ladevorgangs werden für Spalten des Typs XML keine Verteilungsstatistikdaten erfasst.
- STATISTICS NO
- Gibt an, dass keine Statistikdaten erfasst werden sollen und dass die Statistikdaten in den Katalogen nicht geändert werden sollen. Dieser Parameter ist der Standardwert für nach Zeilen organisierte Tabellen.
- COPY NO
- Gibt an, dass der Tabellenbereich, in dem sich die Tabelle befindet, in den Status 'Backup anstehend' versetzt wird, wenn die aktualisierende Recovery aktiviert ist (d. h., wenn logarchmeth1 oder logarchmeth2 auf einen anderen Wert als OFFgesetzt ist). Mit der Option COPY NO wird auch der Status des Tabellenbereichs auf 'Laden läuft' gesetzt. Dies ist ein transienter Status, der beim Beenden oder Fehlschlagen des Ladevorgangs nicht mehr angezeigt wird. Die Daten in einer Tabelle im Tabellenbereich können erst aktualisiert oder gelöscht werden, nachdem ein Tabellenbereichsbackup oder ein Backup der gesamten Datenbank durchgeführt wurde. Es ist jedoch möglich, mithilfe der Anweisung SELECT auf die Daten in einer Tabelle zuzugreifen.
LOAD mit COPY NO in einer wiederherstellbaren Datenbank versetzt die Tabellenbereiche in den Status 'Backup anstehend'. Wenn Sie beispielsweise eine LOAD mit COPY NO und INDEXING MODE DEFERRED ausführen, werden die Indizes, für die eine Aktualisierung erforderlich ist, beibehalten. Bestimmte Abfragen in der Tabelle erfordern möglicherweise eine Indexsuche und sind erst dann erfolgreich, nachdem die Indizes aktualisiert worden sind. Der Index kann nicht aktualisiert werden, wenn er sich in einem Tabellenbereich befindet, der den Status 'Backup anstehend' hat. In diesem Fall ist der Zugriff auf die Tabelle erst zulässig, nachdem ein Backup erstellt wurde. Die Indexaktualisierung wird automatisch von der Datenbank durchgeführt, wenn eine Abfrage auf den Index zugreift. Wenn COPY NO, COPY YESoder NONRECOVERABLE nicht angegeben ist und die Datenbank wiederherstellbar ist (logarchmeth1 oder logarchmeth2 ist auf einen anderen Wert als OFFgesetzt), ist COPY NO der Standardwert.
- COPY YES
- Speichert eine Kopie der geladenen Daten. Dieser Parameter ist ungültig, wenn die aktualisierende Recovery inaktiviert ist.
- USE TSM
- Gibt an, dass die Kopie mit IBM Tivoli® Storage Managergespeichert wird.
- OPEN num-sess SESSIONS
- Die Anzahl der E/A-Sitzungen, die mit TSM oder dem Programm des anderen Anbieters verwendet werden sollen. Der Standardwert lautet 1.
- TO device/directory
- Gibt die Einheit oder das Verzeichnis für die Erstellung des Kopienimage an.
The directory can be on a remote storage, such as IBM® Cloud Object Storage or Amazon Simple Storage Service (S3), and is being accessed using a storage access alias. Ein lokaler Staging-Bereich ist erforderlich, um das Kopienimage, das an den fernen Speicherserver übertragen werden soll, temporär zu speichern. Derzeit werden maximal 5 GB große Kopienimages für den fernen Speicher unterstützt.
- LOAD lib-name
- Der Name der gemeinsam genutzten Bibliothek (DLL unter Windows-Betriebssystemen), die die zu verwendenden Sicherungs-und Zurückschreibungs-E/A-Funktionen des Anbieters enthält. Der vollständige Pfad kann enthalten sein. Wird der vollständige Pfad nicht angegeben, wird standardmäßig der Pfad verwendet, in dem sich das Benutzerexitprogramm befindet.
- NONRECOVERABLE
- Gibt an, dass die Ladetransaktion als nicht wiederherstellbar gekennzeichnet werden soll und dass sie durch eine nachfolgende aktualisierende Recovery nicht wiederhergestellt werden kann. Das Dienstprogramm zur aktualisierenden Recovery überspringt die Transaktion und kennzeichnet die Tabelle, in die die Daten geladen wurden, als
ungültig
. Vom Dienstprogramm werden auch alle nachfolgenden Transaktionen für diese Tabelle ignoriert. Nach Abschluss der aktualisierenden Recovery kann eine solche Tabelle nur aus einem (Gesamt- oder Tabellenbereichs-)Backup gelöscht oder wiederhergestellt werden, das nach einem Commitpunkt nach Abschluss der nicht wiederherstellbaren Ladeoperation erstellt wurde.Mit dieser Option werden Tabellenbereiche nach der Ladeoperation nicht in den Status "Backup anstehend" gesetzt, und während der Ladeoperation muss keine Kopie der geladenen Daten erstellt werden. Wenn COPY NO, COPY YESoder NONRECOVERABLE nicht angegeben ist und die Datenbank nicht wiederherstellbar ist (logarchmeth1 und logarchmeth2 sind beide auf OFFgesetzt), ist NONRECOVERABLE der Standardwert.
- WITHOUT PROMPTING
- Gibt an, dass die Liste der Datendateien alle zu ladenden Dateien enthält und dass die aufgelisteten Einheiten oder Verzeichnisse für die gesamte Ladeoperation ausreichend sind. Wenn keine Fortsetzungseingabedatei gefunden wird oder die Kopierziele gefüllt werden, bevor die Ladeoperation abgeschlossen ist, schlägt die Ladeoperation fehl und die Tabelle verbleibt im Status 'Laden anstehend'.
Wenn diese Option nicht angegeben ist und die Bandeinheit ein Bandende für das Kopienimage findet oder wenn das letzte aufgelistete Element eine Bandeinheit ist, wird der Benutzer aufgefordert, ein neues Band in dieser Einheit einzulegen.
- DATA BUFFER buffer-size
- Gibt (unabhängig vom Grad der Parallelität) die Anzahl der 4-KB-Seiten an, die als gepufferter Speicherbereich für die Übertragung von Daten innerhalb des Dienstprogramms verwendet werden sollen. Wenn der angegebene Wert kleiner als das algorithmische Minimum ist, wird die erforderliche Mindestressource verwendet und es wird keine Warnung zurückgegeben.
Dieser Speicher wird direkt aus dem Zwischenspeicher für Dienstprogramme zugeordnet, dessen Größe über den Datenbankkonfigurationsparameter util_heap_sz modifiziert werden kann. Ab Version 9.5 kann der Wert für die Option DATA BUFFER des Befehls LOAD den Wert von util_heap_sz temporär überschreiten, falls im System mehr Speicher zur Verfügung steht. In dieser Situation wird der Zwischenspeicher für Dienstprogramme automatisch nach Bedarf vergrößert, bis das Limit aus database_memory erreicht ist. Dieser Speicher wird freigegeben, sobald die Ladeoperation abgeschlossen ist.
Wenn kein Wert angegeben ist, berechnet das Dienstprogramm zur Laufzeit einen intelligenten Standardwert. Der Standardwert basiert auf einem Prozentsatz des freien Speicherbereichs, der im Zwischenspeicher für Dienstprogramme zum Zeitpunkt der Instanziierung des Ladeprogramms zur Verfügung steht, sowie einigen Merkmalen der Tabelle.
- SORT BUFFER buffer-size
- Diese Option gibt einen Wert an, der den Datenbankkonfigurationsparameter sortheap während einer Ladeoperation überschreibt. Dies ist nur beim Laden von Tabellen mit Indizes relevant, wenn der Parameter INDEXING MODE nicht auf DEFERRED gesetzt ist. Der angegebene Wert darf den Wert von sortheap nicht überschreiten. Dieser Parameter ist hilfreich zur Drosselung des Sortierspeichers, der beim Laden von Tabellen mit vielen Indizes verwendet wird, ohne den Wert von sortheap zu ändern, was sich auch auf die allgemeine Abfrageverarbeitung auswirken würde.
- CPU_PARALLELISM n
- Gibt die Anzahl der Prozesse oder Threads an, die das Ladedienstprogramm zum Parsen, Konvertieren und Formatieren von Datensätzen beim Erstellen von Tabellenobjekten erstellt. Dieser Parameter ist so ausgelegt, dass die Anzahl der aktiven Prozesse pro Datenbankpartition genutzt wird. Dies ist insbesondere nützlich beim Laden vorsortierter Daten, da die Reihenfolge der Datensätze aus den Quellendaten beibehalten wird. Wenn dieser Parameter den Wert null hat oder nicht angegeben ist, verwendet das Ladedienstprogramm zur Laufzeit einen intelligenten Standardwert (in der Regel basierend auf der Anzahl der verfügbaren CPUs).Hinweis:
- Wird dieser Parameter mit Tabellen verwendet, die LOB- oder LONG VARCHAR-Felder enthalten, nimmt er unabhängig von der Anzahl der System-CPUs oder dem vom Benutzer angegebenen Wert den Wert 1 an.
- Bei Angabe eines niedrigen Werts für den Parameter SAVECOUNT führt das Ladeprogramm viel mehr E/A-Operation durch, um sowohl für Daten als auch für Tabellenmetadaten eine Flushoperation auszuführen. Wenn CPU_PARALLELISM größer als 1 ist, werden die Flushoperationen asynchron ausgeführt, wodurch das Ladeprogramm die CPU nutzen kann. Wenn CPU_PARALLELISM auf 1 gesetzt wird, wartet das Ladeprogramm an Konsistenzpunkten auf die Ein-/Ausgabe. Eine Ladeoperation, für die CPU_PARALLELISM auf 2 und SAVECOUNT auf 10000 gesetzt ist, wird schneller durchgeführt als dieselbe Operation, für die CPU_PARALLELISM auf 1 gesetzt ist, auch wenn es nur eine CPU gibt.
- DISK_PARALLELISM n
- Gibt die Anzahl der Prozesse oder Threads an, die das Ladedienstprogramm zum Schreiben von Daten in die Tabellenbereichscontainer erstellt. Wenn kein Wert angegeben ist, wählt das Dienstprogramm einen intelligenten Standardwert basierend auf der Anzahl der Tabellenbereichscontainer und den Merkmalen der Tabelle aus.
- INDEXING MODE
- Gibt an, ob das Ladedienstprogramm Indizes neu erstellen oder inkrementell erweitern soll. Gültige Werte:
- AUTOSELECT
- Das Ladedienstprogramm entscheidet automatisch zwischen dem Modus REBUILD oder INCREMENTAL. Die Entscheidung basiert auf der Menge der zu ladenden Daten und der Tiefe der Indexbaumstruktur. Informationen zur Tiefe der Indexbaumstruktur werden im Indexobjekt gespeichert. RUNSTATS ist nicht erforderlich, um diese Informationen zu füllen. Der Standardindexierungsmodus ist AUTOSELECT.
- REBUILD
- Alle Indizes werden erneut erstellt. Das Dienstprogramm muss über ausreichende Ressourcen verfügen, um alle Indexschlüsselkomponenten sowohl für alte als auch für angehängte Tabellendaten zu sortieren.
Wenn der Datenbankkonfigurationsparameter LogIndexBuild aktiviert ist, enthält das Transaktionsprotokoll das Image jeder Indexseite, nachdem sie erstellt wurde. Wenn der Datenbankkonfigurationsparameter LogIndexBuild inaktiviert ist, werden nur die Zuordnung und die Initialisierung jeder Seite vom Indexmanager protokolliert (ca. 250 Byte pro Seite im Gegensatz zum nicht leeren Teil jeder Seite).
- INCREMENTAL
- Indizes werden mit neuen Daten erweitert. Mit dieser Methode wird freier Speicherbereich im Index belegt. Sie benötigt nur ausreichend Sortierspeicher, um Indexschlüssel für die eingefügten Datensätze anzuhängen. Diese Methode wird nur in Fällen unterstützt, in denen das Indexobjekt gültig und zu Beginn einer Ladeoperation zugänglich ist (z. B. nicht unmittelbar nach einer Ladeoperation, bei der der Modus DEFERRED angegeben wurde). Wenn dieser Modus angegeben ist, aber aufgrund des Indexstatus nicht unterstützt wird, wird eine Warnung zurückgegeben und die Ladeoperation wird im Modus REBUILD fortgesetzt. Ebenso wird der Modus INCREMENTAL nicht unterstützt, wenn eine LOAD RESTART-Operation in der Buildphase des Ladevorgangs gestartet wird.
Wenn der Datenbankkonfigurationsparameter LogIndexBuild aktiviert ist, generiert die Db2 -Software die Protokollsätze für das Einfügen jedes Schlüssels in den Index sowie alle ausgeführten Seitenaufteilungen. Wenn dieser Parameter inaktiviert ist (was häufig der Fall ist, wenn nicht HADR verwendet wird), hängt die vom Indexmanager durchgeführte Indexprotokollierung davon ab, ob die Option ALLOW READ ACCESS angegeben wurde. Wenn die Option ALLOW READ ACCESS angegeben ist, wird der Protokollsatz einschließlich der Protokolle für Seitenaufteilungen generiert. Wenn die Option ALLOW READ ACCESS nicht angegeben ist, wird kein Protokollsatz aus dem Indexmanager generiert.
- DEFERRED
- Das Ladedienstprogramm versucht nicht, Indizes zu erstellen, wenn dieser Modus angegeben wird. Indizes werden mit einer Markierung versehen, dass eine Aktualisierung erforderlich ist. Der erste Zugriff auf solche Indizes, die nicht in Beziehung zu einer Ladeoperation stehen, kann eine erneute Erstellung erzwingen oder Indizes werden möglicherweise bei Neustart der Datenbank erneut erstellt. Diese Methode erfordert ausreichend Sortierspeicher für alle Schlüsselkomponenten für den größten Index. Die Gesamtzeit, die später für die Indexerstellung benötigt wird, ist länger als die erforderliche Zeit im Modus REBUILD. Daher ist es bei der Ausführung mehrerer Ladeoperationen mit verzögerter Indexierung (im Hinblick auf die Leistung) ratsam, die letzte Ladeoperation in der Sequenz eine Indexwiederherstellung durchführen zu lassen, anstatt Indizes beim ersten Zugriff ohne Ladevorgang erneut erstellen zu lassen.
Die verzögerte Indexierung wird nur für Tabellen mit nicht eindeutigen Indizes unterstützt, sodass doppelte Schlüssel, die während der Ladephase eingefügt werden, nach der Ladeoperation nicht persistent sind.
- ALLOW NO ACCESS
- Der Ladevorgang sperrt die Zieltabelle, um während des Ladens exklusiven Zugriff zu haben. Der Tabellenstatus wird während des Ladevorgangs auf 'Laden läuft' gesetzt. ALLOW NO ACCESS ist das Standardverhalten. Dies ist die einzige gültige Option für LOAD REPLACE.
Wenn es Integritätsbedingungen für die Tabelle gibt, wird der Tabellenstatus sowohl auf 'Festlegen der Integrität anstehend' als auch auf 'Laden läuft' gesetzt. Die Anweisung SET INTEGRITY muss verwendet werden, um den Status 'Festlegen der Integrität anstehend' für die Tabelle aufzuheben.
- ALLOW READ ACCESS
- Der Ladevorgang sperrt die Zieltabelle in einem Modus für gemeinsame Nutzung (Share Mode). Der Tabellenstatus wird sowohl auf 'Laden läuft' als auch auf 'Lesezugriff' gesetzt. Leseeinheiten können beim Laden der Tabelle auf den Nicht-Delta-Teil der Daten zugreifen. Mit anderen Worten: Daten, die vor dem Start des Ladevorgangs vorhanden waren, sind für Leseeinheiten für die Tabelle zugänglich, Daten, die noch geladen werden, sind erst nach Abschluss des Ladevorgangs verfügbar.Wichtig: Der Parameter ALLOW READ ACCESS des Befehls LOAD ist veraltet und wird möglicherweise in einem späteren Release entfernt. Beginnen Sie mit der Verwendung des Dienstprogramms INGEST , bevor der Parameter ALLOW READ ACCESS des Befehls LOAD eingestellt wird. Sie können das Dienstprogramm INGEST darüber hinaus in Befehlsscripts verwenden.
Der Parameter ALLOW READ ACCESS wird für nach Spalten organisierte Tabellen nicht unterstützt.
LOAD TERMINATE oder LOAD RESTART eines ALLOW READ ACCESS -Ladevorgangs kann diesen Parameter verwenden; LOAD TERMINATE oder LOAD RESTART eines ALLOW NO ACCESS -Ladevorgangs kann diesen Parameter nicht verwenden. Darüber hinaus ist diese Option nicht gültig, wenn für die Indizes in der Zieltabelle angegeben ist, dass eine erneute Erstellung erforderlich ist.
Wenn Integritätsbedingungen für die Tabelle bestehen, wird der Tabellenstatus sowohl auf 'Festlegen der Integrität anstehend' als auch auf 'Laden läuft' und 'Lesezugriff' gesetzt. Am Ende des Ladevorgangs wird der Tabellenstatus 'Laden läuft' aufgehoben, der Tabellenstatus 'Festlegen der Integrität anstehend' und der Tabellenstatus 'Lesezugriff' bleiben jedoch erhalten. Die Anweisung SET INTEGRITY muss verwendet werden, um den Status 'Festlegen der Integrität anstehend' für die Tabelle aufzuheben. Während sich die Tabelle im Status 'Festlegen der Integrität anstehend' und 'Lesezugriff' befindet, ist der Nicht-Delta-Teil der Daten noch für Leseeinheiten zugänglich, der neue (Delta-)Teil der Daten wird erst zugänglich, nachdem die Anweisung SET INTEGRITY ausgeführt worden ist. Ein Benutzer kann mehrere Ladevorgänge an derselben Tabelle durchführen, ohne eine Anweisung SET INTEGRITY abzusetzen. Bis zum Absetzen der Anweisung SET INTEGRITY bleiben jedoch nur die ursprünglichen (geprüften) Daten sichtbar.
ALLOW READ ACCESS unterstützt auch die folgenden Modifikatoren:- USE tablespace-name
- Beim erneuten Erstellen der Indizes wird eine Spiegelkopie des Index im Tabellenbereich tabellenbereichsname erstellt und am Ende der Ladeoperation während einer Indexkopierphase in den ursprünglichen Tabellenbereich kopiert. In Zusammenhang mit dieser Option können nur Tabellenbereiche für temporäre Systemtabellen verwendet werden. Wenn sie nicht angegeben ist, wird der Spiegelindex im selben Tabellenbereich erstellt wie das Indexobjekt. Wenn die Spiegelkopie im selben Tabellenbereich erstellt wird wie das Indexobjekt, wird das Spiegelindexobjekt sofort über das alte Indexobjekt kopiert. Wenn sich die Spiegelkopie in einem anderen Tabellenbereich befindet als das Indexobjekt, wird ein physischer Kopiervorgang durchgeführt. Dies kann beträchtliche Ein-/Ausgabe und Zeit in Anspruch nehmen. Das Kopieren erfolgt, während die Tabelle am Ende einer Ladeoperation während der Indexkopierphase offline ist.
Ohne diese Option wird der Spiegelindex im selben Tabellenbereich erstellt wie der ursprüngliche Index. Da sich sowohl der ursprüngliche Index als auch der Spiegelindex standardmäßig gleichzeitig im selben Tabellenbereich befinden, reicht der Speicherbereich möglicherweise nicht aus, um beide Indizes in einem Tabellenbereich zu speichern. Mit dieser Option wird sichergestellt, dass Sie ausreichend Tabellenbereich für die Indizes beibehalten.
Diese Option wird ignoriert, wenn der Benutzer INDEXING MODE REBUILD oder INDEXING MODE AUTOSELECTnicht angibt. Diese Option wird auch ignoriert, wenn INDEXING MODE AUTOSELECT ausgewählt wird, und LOAD wählt, den Index inkrementell zu aktualisieren.
- FETCH_PARALLELISM YES | NO
- Wenn Sie einen Ladevorgang von einem Cursor durchführen, bei dem der Cursor mit dem Schlüsselwort DATABASE deklariert wird, oder wenn Sie den API-Medieneintrag sqlu_remotefetch_entry verwenden und diese Option auf YES gesetzt ist, versucht das Ladedienstprogramm, den Abruf von der fernen Datenquelle nach Möglichkeit zu parallelisieren. Derzeit können Sie den Datenabruf nur parallelisieren, wenn die SELECT-Anweisung des Cursors das einfache Format
"SELECT * FROM <tablename>"aufweist. Wenn dieser Parameter auf NO gesetzt ist, wird kein paralleler Abruf ausgeführt. Der Standardwert lautet YES. Weitere Informationen finden Sie unterDaten mit dem Dateityp CURSOR versetzen
. - SET INTEGRITY PENDING CASCADE
- Wenn LOAD die Tabelle in den Status 'Festlegen der Integrität anstehend' versetzt, ermöglicht die Option SET
INTEGRITY PENDING CASCADE dem Benutzer anzugeben, ob der Status 'Festlegen der Integrität anstehend' der geladenen Tabelle sofort an alle untergeordneten Elemente weitergegeben wird (einschließlich untergeordneter Fremdschlüsseltabellen, untergeordneter sofort materialisierter Abfragetabellen und untergeordneter sofortiger Zwischenspeichertabellen).
- IMMEDIATE
- Gibt an, dass der Status 'Festlegen der Integrität anstehend' sofort an alle untergeordneten Tabellen für Fremdschlüssel, untergeordnete IMQTs und untergeordnete sofort gespeicherte Zwischenspeichertabellen weitergegeben wird. Bei einer Operation LOAD INSERT wird der Status 'Festlegen der Integrität anstehend' nicht an untergeordnete Tabellen für Fremdschlüssel weitergegeben, selbst wenn die Option IMMEDIATE angegeben ist.
Wenn die geladene Tabelle später (mit der Option IMMEDIATE CHECKED der Anweisung SET INTEGRITY) auf ungültige Integritätsbedingungen überprüft wird, werden untergeordnete Tabellen für Fremdschlüssel, die in den Status 'Festlegen der Integrität anstehend Lesezugriff' versetzt wurden, in den Status 'Festlegen der Integrität anstehend Kein Zugriff' versetzt.
- DEFERRED
- Gibt an, dass nur die geladene Tabelle in den Status 'Festlegen der Integrität anstehend' versetzt wird. Der Status der untergeordneten Tabellen für Fremdschlüssel, untergeordneten IMQTs und untergeordneten sofort gespeicherten Zwischenspeichertabellen bleibt unverändert.
Untergeordnete Tabellen für Fremdschlüssel werden später möglicherweise implizit in den Status 'Festlegen der Integrität anstehend' versetzt, wenn ihre übergeordneten Tabellen (mit der Option IMMEDIATE CHECKED der Anweisung SET INTEGRITY) auf ungültige Integritätsbedingungen überprüft werden. Untergeordnete IMQTs und untergeordnete sofort gespeicherte Zwischenspeichertabellen werden implizit in den Status 'Festlegen der Integrität anstehend' versetzt, wenn eine der zugrunde liegenden Tabellen auf ungültige Integritätsbedingungen geprüft wird. Eine Abfrage einer Tabelle im Status 'Festlegen der Integrität anstehend' kann erfolgreich sein, wenn die Abfrage anstelle der angegebenen Tabelle auf eine infrage kommende MQT (Materialized Query Table) zugreifen kann, die sich nicht im Status 'Festlegen der Integrität anstehend' befindet. Eine Warnung (SQLSTATE 01586) wird ausgegeben, um darauf hinzuweisen, dass untergeordnete Tabellen in den Status 'Festlegen der Integrität anstehend' versetzt wurden. Informationen dazu, wann diese untergeordneten Tabellen in den Status 'Festlegen der Integrität anstehend' versetzt werden, finden Sie im Abschnitt Hinweise der Anweisung SET INTEGRITY.
Wenn die Option SET INTEGRITY PENDING CASCADE nicht angegeben ist:
- Nur die geladene Tabelle wird in den Status 'Festlegen der Integrität anstehend' versetzt. Der Status der untergeordneten Tabellen für Fremdschlüssel, untergeordneten IMQTs und untergeordneten sofort gespeicherten Zwischenspeichertabellen bleibt unverändert und kann später implizit in den Status 'Festlegen der Integrität anstehend' geändert werden, wenn die geladene Tabelle auf ungültige Integritätsbedingungen geprüft wird.
Wenn LOAD die Zieltabelle nicht in den Status 'Festlegen der Integrität anstehend' versetzt, wird die Option SET INTEGRITY PENDING CASCADE ignoriert.
- LOCK WITH FORCE
- Das Dienstprogramm fordert während des Ladevorgangs verschiedene Sperren, auch Tabellensperren, an. Anstatt zu warten und möglicherweise eine Zeitlimitüberschreitung zu erhalten, kann der Ladevorgang beim Anfordern einer Sperre andere Anwendungen, die in Konflikt stehende Sperren für die Zieltabelle halten, erzwungenermaßen abmelden. Anwendungen, die in Konflikt stehende Sperren für die Systemkatalogtabellen haben, werden durch das Ladedienstprogramm nicht erzwungenermaßen abgemeldet. Erzwungenermaßen abgemeldete Anwendungen führen einen Rollback durch und geben die vom Ladedienstprogramm benötigten Sperren frei. Das Ladedienstprogramm kann dann mit der Verarbeitung fortfahren. Für diese Option ist dieselbe Berechtigung erforderlich wie für den Befehl FORCE APPLICATIONS (SYSADM, SYSCTRL oder SYSMAINT).
Ladevorgänge mit ALLOW NO ACCESS erzwingen möglicherweise zu Beginn der Ladeoperation die Abmeldung von Anwendungen, die in Konflikt stehende Sperren halten. Zu Beginn der Ladeoperation kann das Dienstprogramm die Abmeldung von Anwendungen erzwingen, die versuchen, die Tabelle abzufragen oder zu ändern.
ALLOW READ ACCESS -Ladeoperationen können Anwendungen erzwingen, die am Anfang oder am Ende der Ladeoperation in Konflikt stehende Sperren halten. Zu Beginn der Ladeoperation kann das Ladedienstprogramm die Abmeldung von Anwendungen erzwingen, die versuchen, die Tabelle zu ändern. Am Ende der Ladeoperation kann das Ladedienstprogramm die Abmeldung von Anwendungen erzwingen, die versuchen, die Tabelle abzufragen oder zu ändern.
- SOURCEUSEREXIT executable
- Gibt den Namen einer ausführbaren Datei an, die aufgerufen wird, um als Datengrundlage für das Dienstprogramm zu dienen.
Der Parameter SOURCEUSEREXIT wird für nach Spalten organisierte Tabellen nicht unterstützt.
- REDIRECT
- INPUT FROM
- BUFFER input-buffer
- Der in eingabepuffer angegebene Bytestrom wird an den STDIN-Dateideskriptor des Prozesses übergeben, der die angegebene ausführbare Datei ausführt.
- FILE input-file
- Der Inhalt dieser clientseitigen Datei wird an den STDIN-Dateideskriptor des Prozesses übergeben, der die angegebene ausführbare Datei ausführt.
- OUTPUT TO
- FILE output-file
- Die Dateideskriptoren STDOUT und STDERR werden in der angegebenen vollständig qualifizierten serverseitigen Datei erfasst.
- PARALLELIZE
- Erhöht den Durchsatz der im Ladedienstprogramm eingehenden Daten, indem mehrere Benutzerexitprozesse gleichzeitig aufgerufen werden. Diese Option ist nur in Umgebungen mit partitionierten Datenbanken anwendbar und wird in Umgebungen mit Einzelpartitionsdatenbanken ignoriert.
Daten mithilfe einer angepassten Anwendung verschieben (Benutzerexit)
. - PARTITIONED DB CONFIG partitioned-db-option
- Ermöglicht die Ausführung eines Ladevorgangs in eine Tabelle, die über mehrere Datenbankpartitionen verteilt ist. Mit dem Parameter PARTITIONED DB CONFIG können Sie spezifische Konfigurationsoptionen für die partitionierte Datenbank angeben. Bei den Werten für option-für-partitionierte-datenbank kann es sich um eine der folgenden Optionen handeln:
Ausführliche Beschreibungen dieser Optionen finden Sie inPART_FILE_LOCATION x OUTPUT_DBPARTNUMS x PARTITIONING_DBPARTNUMS x MODE x MAX_NUM_PART_AGENTS x ISOLATE_PART_ERRS x STATUS_INTERVAL x PORT_RANGE x CHECK_TRUNCATION MAP_FILE_INPUT x MAP_FILE_OUTPUT x TRACE x NEWLINE DISTFILE x OMIT_HEADER RUN_STAT_DBPARTNUM xLOAD-Konfigurationsoptionen für Umgebungen mit partitionierten Datenbanken
. - RESTARTCOUNT
- Veraltet.
- USING directory
- Veraltet.
Beispiel 1
- COL1 VARCHAR 20 NOT NULL WITH DEFAULT
- COL2 SMALLINT
- COL3 CHAR 4
- COL4 CHAR 2 NOT NULL WITH DEFAULT
- COL5 CHAR 2 NOT NULL
- ELE1 Positionen 01 bis 20
- ELE2 Positionen 21 bis 22
- ELE3 Positionen 23 bis 23
- ELE4 Positionen 24 bis 27
- ELE5 Positionen 28 bis 31
- ELE6 Positionen 32 bis 32
- ELE7 Positionen 33 bis 40
1...5....10....15....20....25....30....35....40
Test data 1 XXN 123abcdN
Test data 2 and 3 QQY wxyzN
Test data 4,5 and 6 WWN6789 Ydb2 load from ascfile1 of asc modified by striptblanks reclen=40
method L (1 20, 21 22, 24 27, 28 31)
null indicators (0,0,23,32)
insert into table1 (col1, col5, col2, col3)- Die Angabe von striptblanks im Parameter MODIFIED BY bewirkt, dass Leerzeichen in VARCHAR-Spalten abgeschnitten werden (zum Beispiel COL1 mit einer Länge von 11, 17 und 19 Byte in den Zeilen 1, 2 und 3).
- Die Angabe von reclen=40 im Parameter MODIFIED BY legt fest, dass es am Ende des Eingabedatensatzes kein Zeilenvorschubzeichen gibt und dass jeder Datensatz 40 Byte lang ist. Die letzten 8 Byte werden nicht zum Laden der Tabelle verwendet.
- Da COL4 nicht in der Eingabedatei bereitgestellt wird, wird sie in TABLE1 mit dem Standardwert eingefügt (sie ist mit NOT NULL WITH DEFAULT definiert).
- Die Positionen 23 und 32 werden verwendet, um anzugeben, ob in COL2
und COL3 von TABLE1 für eine gegebene Zeile NULL geladen wird. Wenn
die Nullanzeigerposition der Spalte für einen gegebenen Satz
Yenthält, ist die Spalte NULL. WennNvorhanden ist, werden die Datenwerte in den Datenpositionen der Spalte des Eingabesatzes (wie in L (........) definiert) als Quelle für Spaltendaten für die Zeile verwendet. In diesem Beispiel ist keine Spalte in Zeile 1 NULL. COL2 in Zeile 2 ist NULL, und COL3 in Zeile 3 ist NULL. - In diesem Beispiel werden die NULL-Anzeiger für COL1 und COL5 als 0 (Null) angegeben, wodurch festgelegt wird, dass die Daten keine Nullwerte enthalten dürfen.
- Der NULL-Anzeiger für eine bestimmte Spalte kann sich an einer
beliebigen Position im Eingabedatensatz befinden. Diese Position muss jedoch angegeben werden, und der
Wert
YoderNmuss ebenfalls angegeben werden.
Beispiel 2 (Laden von LOBs aus Dateien)
- COL1 CHAR 4 NOT NULL WITH DEFAULT
- LOB1 LOB
- LOB2 LOB
- ELE1 Positionen 01 bis 04
- ELE2 Positionen 06 bis 13
- ELE3 Positionen 15 bis 22
- ASCFILE2 enthält LOB-Daten
- ASCFILE3 enthält LOB-Daten
- ASCFILE4 enthält LOB-Daten
- ASCFILE5 enthält LOB-Daten
- ASCFILE6 enthält LOB-Daten
- ASCFILE7 enthält LOB-Daten
1...5....10...15...20...25...30.
REC1 ASCFILE2 ASCFILE3
REC2 ASCFILE4 ASCFILE5
REC3 ASCFILE6 ASCFILE7db2 load from ascfile1 of asc
lobs from /u/user1, /u/user1/bin
modified by lobsinfile reclen=22
method L (1 4, 6 13, 15 22)
insert into table1- Die Angabe von lobsinfile im Parameter MODIFIED BY teilt dem Ladeprogramm mit, dass alle LOB-Daten aus Dateien geladen werden sollen.
- Die Angabe von reclen=22 im Parameter MODIFIED BY legt fest, dass es am Ende des Eingabedatensatzes kein Zeilenvorschubzeichen gibt und dass jeder Datensatz 22 Byte lang ist.
- LOB-Daten sind in 6 Dateien (ASCFILE2 bis ASCFILE7) enthalten. Jede Datei enthält die Daten, die zum Laden einer LOB-Spalte für eine bestimmte Zeile verwendet werden. Die Beziehung zwischen LOBs und anderen Daten ist in ASCFILE1 angegeben. Der erste Satz dieser Datei teilt dem Ladeprogramm mit, REC1 in COL1 der Zeile 1 zu platzieren. Der Inhalt von ASCFILE2 wird zum Laden von LOB1 in Zeile 1 verwendet und der Inhalt von ASCFILE3 wird zum Laden von LOB2 in Zeile 1 verwendet. Ebenso werden ASCFILE4 und ASCFILE5 verwendet, um LOB1 und LOB2 von Zeile 2 zu laden, und ASCFILE6 und ASCFILE7 werden zum Laden der LOBs von Zeile 3 verwendet.
- Der Parameter LOBS FROM enthält zwei Pfade, die nach den benannten LOB-Dateien durchsucht werden, wenn diese Daten vom Ladeprogramm benötigt werden.
- Wenn LOBs direkt aus ASCFILE1 (ASCII-Datei mit universellen Zeilenbegrenzern) ohne den Modifikator lobsinfile geladen werden sollen, müssen die folgenden Regeln beachtet werden:
- Die Gesamtlänge aller Datensätze, einschließlich der LOBs, darf 32 KB nicht überschreiten.
- LOB-Felder in den Eingabedatensätzen müssen eine feste Länge haben; LOB-Daten werden bei Bedarf mit Leerzeichen aufgefüllt.
- Der Modifikator striptblanks muss angegeben werden, damit die abschließenden Leerzeichen, die zum Auffüllen von LOBs verwendet werden, beim Einfügen der LOBs in die Datenbank entfernt werden können.
Beispiel 3 (Verwendung von Speicherauszugsdateien)
table friends "( c1 INT NOT NULL, c2 INT, c3 CHAR(8) )"23, 24, bobby
, 45, john
4,, marywird die zweite Zeile zurückgewiesen, weil das erste INT NULL ist und die Spaltendefinition NOT NULL lautet. Spalten, die Anfangszeichen enthalten, die nicht mit dem DEL-Format konsistent sind, führen zu einem Fehler, und der Datensatz wird zurückgewiesen. Solche Datensätze können in eine Speicherauszugsdatei geschrieben werden.
22,34,"bob"
24,55,"sam" sdfsamin die dritte Spalte der Tabelle und die Zeichen
sdfwerden in einer Warnung markiert. Der Datensatz wird nicht zurückgewiesen. Weiteres Beispiel:
22 3, 34,"bob"Das Dienstprogramm lädt 22,34,"bob" und generiert eine Warnung, dass einige Daten in Spalte eins nach
22 ignoriert wurden. Der Datensatz wird nicht zurückgewiesen.
Beispiel 4 (Laden einer Tabelle mit einer Identitätsspalte)
- C1 VARCHAR(30)
- C2 INT GENERATED BY DEFAULT AS IDENTITY
- C3 DECIMAL(7,2)
- C4 CHAR(1)
TABLE2 entspricht TABLE1, wobei jedoch C2 eine als GENERATED ALWAYS definierte Identitätsspalte ist.
"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 818.23, I"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I- Der folgende Befehl
generiert Identitätswerte für die Zeilen 1
und 2, da in der Datei DATAFILE1 für diese Zeilen keine
Identitätswerte zur Verfügung gestellt werden. Zeile 3 wird jedoch der vom Benutzer bereitgestellte Identitätswert 100 zugeordnet; Zeile 4 wird der vom Benutzer bereitgestellte Identitätswert 101 zugeordnet.
db2 load from datafile1.del of del replace into table1 - Um die Datei DATAFILE1 so in die Tabelle TABLE1 zu laden, dass für alle Zeilen
Identitätswerte generiert werden, setzen Sie einen der folgenden
Befehle ab:
db2 load from datafile1.del of del method P(1, 3, 4) replace into table1 (c1, c3, c4) db2 load from datafile1.del of del modified by identityignore replace into table1 - Um die Datei DATAFILE2 so in die Tabelle TABLE1 zu laden, dass für alle Zeilen
Identitätswerte generiert werden, setzen Sie einen der
folgenden Befehle ab:
db2 load from datafile2.del of del replace into table1 (c1, c3, c4) db2 load from datafile2.del of del modified by identitymissing replace into table1 - Um die Datei DATAFILE1 so in die Tabelle TABLE2 zu laden, dass den Zeilen 3 und 4 die
Identitätswerte 100 bzw. 101 zugeordnet werden, setzen Sie den
folgenden Befehl ab:
In diesem Fall werden die Zeilen 1 und 2 zurückgewiesen, da das Dienstprogramm angewiesen wurde, die durch das System generierten Identitätswerte mit den benutzerdefinierten Werten zu überschreiben. Sind jedoch keine benutzerdefinierten Werte vorhanden, muss die Zeile zurückgewiesen werden, da Identitätsspalten implizit nicht NULL sind.db2 load from datafile1.del of del modified by identityoverride replace into table2 - Wird die Datei DATAFILE1 in die Tabelle TABLE2 geladen, ohne dass einer der identitätsbezogenen Änderungswerte für den Dateityp verwendet wird, werden die Zeilen 1 und 2 geladen, die Zeilen 3 und 4 jedoch zurückgewiesen, da diese Zeilen eigene Werte, die nicht NULL sind, liefern und die Identitätsspalte als GENERATED ALWAYS definiert wurde.
Beispiel 5 (Laden einer Tabelle mit einer Spalte für Zeilenänderungszeitmarken)
TABLE1 enthält 4 Spalten:
- C1 VARCHAR(30)
- C2 ROW CHANGE TIMESTAMP GENERATED BY DEFAULT
- C3 DECIMAL(7,2)
- C4 CHAR(1)
TABLE2 entspricht TABLE1, wobei jedoch C2 eine als GENERATED ALWAYS definierte Spalte ist.
Die Datensätze in DATAFILE1 (DEL-Format) lauten:
"Liszt"
"Hummel",,187.43, H
"Grieg", 2006-05-23-15.55.53.209971, 66.34, G
"Satie", 2006-05-22-19.34.14.947681, 818.23, I
Die Datensätze in DATAFILE2 (DEL-Format) lauten:
"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I
- Der folgende Befehl generiert ROW CHANGE TIMESTAMP-Werte für die Zeilen 1 und 2, da in der Datei DATAFILE1 für diese Zeilen keine ROW CHANGE TIMESTAMP-Werte zur Verfügung gestellt werden. Den Zeilen 3 und 4 wird jedoch der benutzerdefinierte ROW CHANGE TIMESTAMP-Wert
2006-05-23-15.55.53.209971bzw.2006-05-22-19.34.14.947681zugeordnet.db2 load from datafile1.del of del replace into table1 - Um die Datei DATAFILE1 so in die Tabelle TABLE1 zu laden, dass für alle Zeilen ROW CHANGE TIMESTAMP-Werte generiert werden, setzen Sie einen der folgenden Befehle ab:
db2 load from datafile1.del of del method P(1, 3, 4) replace into table1 (c1, c3, c4) db2 load from datafile1.del of del modified by rowchangetimestampignore replace into table1 - Um die Datei DATAFILE2 so in die Tabelle TABLE1 zu laden, dass für jede Zeile ROW CHANGE TIMESTAMP-Werte generiert werden, setzen Sie einen der folgenden Befehle ab:
db2 load from datafile2.del of del replace into table1 (c1, c3, c4) db2 load from datafile2.del of del modified by rowchangetimestampmissing replace into table1 - Um die Datei DATAFILE1 so in die Tabelle TABLE2 zu laden, dass den Zeilen 3 und 4 die ROW CHANGE TIMESTAMP-Werte
2006-05-23-15.55.53.209971bzw.2006-05-22-19.34.14.947681zugeordnet werden, setzen Sie den folgenden Befehl ab:db2 load from datafile1.del of del modified by rowchangetimestampoverride replace into table2In diesem Fall werden die Zeilen 1 und 2 zurückgewiesen, da das Dienstprogramm angewiesen wurde, die durch das System generierten ROW CHANGE TIMESTAMP-Werte mit den benutzerdefinierten Werten zu überschreiben. Sind jedoch keine benutzerdefinierten Werte vorhanden, muss die Zeile zurückgewiesen werden, da ROW CHANGE TIMESTAMP-Spalten implizit NOT NULL sind.
- Wird die Datei DATAFILE1 in die Tabelle TABLE2 geladen, ohne dass einer der Modifikatoren in Verbindung mit ROW CHANGE für den Dateityp verwendet wird, werden die Zeilen 1 und 2 geladen, die Zeilen 3 und 4 jedoch zurückgewiesen, da diese Zeilen eigene Werte ungleich null liefern und die Spalte für Zeilenänderungszeitmarken als GENERATED ALWAYS definiert wurde.
Beispiel 6 (Laden mit dem Dateityp CURSOR)
ABC.TABLE1 enthält 3 Spalten:ONE INT
TWO CHAR(10)
THREE DATETabelle ABC.TABLE2 enthält 3 Spalten:ONE VARCHAR
TWO INT
THREE DATEDurch Ausführung der folgenden Befehle werden alle Daten aus der Tabelle ABC.TABLE1 in die Tabelle ABC.TABLE2 geladen:db2 declare mycurs cursor for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2Wenn sich ABC.TABLE1 in einer anderen Datenbank befindet als ABC.TABLE2, können die Optionen DATABASE, USER und USING der Anweisung DECLARE CURSOR für den Ladevorgang verwendet werden. Wenn sich ABC.TABLE1 beispielsweise in der Datenbank DB1 befindet und die Benutzer-ID und das Kennwort für DB1 user1 und pwd1 lauten, werden mit den folgenden Befehlen alle Daten aus ABC.TABLE1 in ABC.TABLE2 geladen:db2 declare mycurs cursor database DB1 user user1 using pwd1
for select two,one,three from abc.table1db2 load from mycurs of cursor insert into abc.table2
Beispiel: XML-Daten laden
Vom Benutzer wurde eine Datendatei mit XDS-Feldern zum Beschreiben der Dokumente erstellt, die in die Tabelle eingefügt werden sollen. Die Datei sieht wie folgt aus:
1, "<XDS FIL=""file1.xml"" />"
2, "<XDS FIL='file2.xml' OFF='23' LEN='45' />"
Für die erste Zeile wird das XML-Dokument durch die Datei mit dem Namen file1.xmlgekennzeichnet. Da es sich bei dem Zeichenbegrenzer um das doppelte Anführungszeichen handelt und innerhalb der XDS doppelte Anführungszeichen vorhanden sind, werden die in der XDS enthaltenen Anführungszeichen verdoppelt. Für die zweite Zeile wird das XML-Dokument durch die Datei namens file2.xml angegeben. Sie beginnt an der relativen Position 23 (in Byte) und hat eine Länge von 45 Byte.
LOAD
FROM data.del of DEL INSERT INTO mytableBeispiel: XML-Daten über CURSOR laden
Das Laden von Daten über den Cursor entspricht dem Laden von einem regulären relationalen Spaltentyp. Der Benutzer verfügt über zwei Tabellen (T1 und T2) die jeweils aus einer einzigen XML-Spalte namens C1 bestehen. Zum Laden von T1 in T2 muss der Benutzer zunächst einen Cursor deklarieren:
DECLARE
X1 CURSOR FOR SELECT C1 FROM T1;
Als Nächstes kann der Benutzer unter Verwendung des Cursortyps einen Befehl LOAD absetzen:
LOAD FROM X1 of
CURSOR INSERT INTO T2
Das Anwenden der XML-spezifischen LOAD-Optionen auf den Cursortyp entspricht dem Laden aus einer Datei.
Beispiele für die Verwendung der Klausel XMLVALIDATE
- XMLVALIDATE USING XDS
Der Benutzer möchte für die Prüfung das in der XDS angegebene Schema zu Grunde legen. Sind XDS-Werte ohne SCH-Attribute vorhanden, so werden die betreffenden Dokumente anhand des in dieser Klausel verwendeten Schemas geprüft.
XMLVALIDATE USING XDS DEFAULT S1.SCHEMA_BDer Benutzer möchte bestimmte Schemata ignorieren, die in der XDS angegeben sind.
XMLVALIDATE USING XDS IGNORE S1.SCHEMA_C- Der Benutzer möchte, dass bei der Prüfung einige der in der XDS angegebenen Schemata
neu zugeordnet werden.
XMLVALIDATE USING XDS MAP( (S1.SCHEMA_A, S2.SCHEMA_B ), (S3.SCHEMA_C, S5.SCHEMA_E) )Bei Verwendung der oben angegebenen XDS wird jedes Dokument mit einem SCH-Attribut für S1.SCHEMA_A anhand des Schemas S2.SCHEMA_B geprüft. Außerdem wird jedes Dokument mit einem SCH-Attribut für S3.SCHEMA_C anhand des Schemas S5.SCHEMA_E geprüft.
- Der Benutzer möchte eine Kombination der Optionen DEFAULT, IGNORE und MAP verwenden:
XMLVALIDATE USING XDS DEFAULT S8.SCHEMA_H IGNORE (S9.SCHEMA_I, S10.SCHEMA_J) MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S3.SCHEMA_C, S5.SCHEMA_E), (S6.SCHEMA_F, S3.SCHEMA_C), (S4.SCHEMA_D, S7.SCHEMA_G))- Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das XML-Schema mit der SQL-Kennung "S8.SCHEMA_H" wird zur Prüfung des Dokuments in der Datei xmlfile.001.xmlverwendet, da "S8.SCHEMA_H" als zu verwendendes Standardschema angegeben wurde.<XDS FIL='xmlfile.001.xml' /> - Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Für das Dokument in der Datei xmlfile.002.xmlerfolgt keine Schemaprüfung, da die XDS zwar "S10.SCHEMA_J" als zu verwendendes Schema angibt, dieses Schema aber Teil der Klausel IGNORE ist. Der Dokumentinhalt befindet sich an der relativen Byteposition 10 in der Datei (also im 11. Byte) und ist 500 Byte lang.<XDS FIL='xmlfile.002.xml' OFF='10' LEN='500' SCH='S10.SCHEMA_J' /> - Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das XML-Schema mit der SQL-Kennung "S3.SCHEMA_C" wird verwendet, um das Dokument in der Datei<XDS FIL='xmlfile.003.xml' SCH='S6.SCHEMA_F' />xmlfile.003.xmlzu validieren. Der Grund dafür ist, dass die Klausel MAP angibt, dass das Schema "S6.SCHEMA_F" dem Schema "S3.SCHEMA_C" zugeordnet werden soll. Es findet keine weitere Zuordnung statt, daher erfolgt in diesem Fall keine Zuordnung des Schemas "S3.SCHEMA_C" zum Schema "S5.SCHEMA_E". - Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das XML-Schema mit der SQL-Kennung "S11.SCHEMA_K" wird verwendet, um das Dokument in der Datei xmlfile.004.xmlzu validieren. In diesem Fall wird keine der Angaben DEFAULT, IGNORE oder MAP angewendet.<XDS FIL='xmlfile.004.xml' SCH='S11.SCHEMA_K' />
- XMLVALIDATE USING SCHEMA
- Der Benutzer möchte alle XML-Dokumente anhand eines einzigen Schemas prüfen. Angenommen, die Klausel XMLVALIDATE lautet wie folgt:
XMLVALIDATE USING SCHEMA S2.SCHEMA_B- Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das Dokument in der Datei xmlfile.001.xml wird mithilfe des XML-Schemas mit der SQL-Kennung "S2.SCHEMA_B" geprüft.<XDS FIL='xmlfile.001.xml' /> - Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das Dokument in der Datei xmlfile.002.xml wird mithilfe des XML-Schemas mit der SQL-Kennung "S2.SCHEMA_B" geprüft. Das SCH-Attribut wird ignoriert, da die Validierung unter Verwendung eines in der Klausel USING SCHEMA angegebenen Schemas durchgeführt wird.<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
- XMLVALIDATE USING SCHEMALOCATION HINTS
Der Benutzer möchte für die Prüfung die Schemainformationen aus dem Dokument selbst verwenden. Angenommen, die Klausel XMLVALIDATE lautet wie folgt:
XMLVALIDATE USING SCHEMALOCATION HINTS- Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das zu verwendende XML-Schema wird über das Attribut 'schemaLocation' im Dokumentinhalt bestimmt. Ist dieses Attribut nicht vorhanden, erfolgt keine Schemaprüfung.<XDS FIL='xmlfile.001.xml' /> - Bezogen auf eine XML-Spalte, die folgende XDS enthält:
Das zu verwendende XML-Schema wird über das Attribut 'schemaLocation' im Dokumentinhalt bestimmt. Ist dieses Attribut nicht vorhanden, erfolgt keine Schemaprüfung. Das SCH-Attribut wird ignoriert, da die Validierung mit SCHEMALOCATION HINTSdurchgeführt wird.<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
Hinweise zur Verwendung
- Die Daten werden in der Reihenfolge geladen, die in der
Eingabedatei vorliegt. Wenn eine bestimmte Reihenfolge gewünscht wird, sollten die Daten sortiert werden, bevor versucht wird, einen Ladevorgang durchzuführen. Wenn die Reihenfolge der Quellendaten nicht beibehalten werden muss, können
Sie auch die Verwendung des Dateitypmodifikators ANYORDER in Betracht ziehen,
der im nachfolgenden Abschnitt
Modifikatoren für Dateityp für das Dienstprogramm LOAD
beschrieben wird. - Das Ladedienstprogramm erstellt Indizes auf der Basis vorhandener Definitionen. Die Ausnahmetabellen werden verwendet, um Duplikate bei eindeutigen Schlüsseln zu verarbeiten. Das Dienstprogramm erzwingt keine referenzielle Integrität, führt keine Prüfungen auf Integritätsbedingungen aus und aktualisiert keine gespeicherten Abfragetabellen, die von den zu ladenden Tabellen abhängig sind. Tabellen, die referenzielle Integritätsbedingungen oder Prüfungen auf Integritätsbedingung enthalten, werden in den Status 'Festlegen der Integrität anstehend' versetzt. Übersichtstabellen, für die das Attribut REFRESH IMMEDIATE definiert ist und die von geladenen Tabellen abhängig sind, werden ebenfalls in den Status 'Festlegen der Integrität anstehend' versetzt. Setzen Sie die Anweisung SET INTEGRITY ab, um den Status 'Festlegen der Integrität anstehend' für die Tabelle aufzuheben. Ladeoperationen können nicht für replizierte MQTs ausgeführt werden.
- Falls ein Clusterindex für die Tabelle vorhanden ist, müssen die Daten vor dem Laden nach dem Clusterindex sortiert werden. Die Sortierung der Daten vor dem Laden in eine MDC-Tabelle (MDC-Multidimensional Clustering) ist jedoch nicht erforderlich.
- Wenn Sie beim Laden in eine geschützte Tabelle eine Ausnahmetabelle angeben, werden alle Zeilen, die durch ungültige Sicherheitskennsätze geschützt sind, an diese Tabelle gesendet. Dadurch können Benutzer, die Zugriff auf die Ausnahmetabelle haben, möglicherweise auf Daten zugreifen, für deren Zugriff sie normalerweise nicht berechtigt sind. Um die Sicherheit zu verbessern, sollten Sie sorgfältig darauf achten, wem Sie Zugriff auf die Ausnahmetabelle erteilen, und jede Zeile löschen, sobald sie repariert und in die geladene Tabelle kopiert wurde. Außerdem sollten Sie die Ausnahmetabelle löschen, sobald Sie damit fertig sind.
- Sicherheitskennsätze enthalten im internen Format möglicherweise Zeilenvorschubzeichen. Wenn Sie die Datei mit dem DEL-Dateiformat laden, können diese Zeilenvorschubzeichen fälschlicherweise für Begrenzer gehalten werden. Wenn dieses Problem vorliegt, geben Sie den Modifikator delprioritychar für den Dateityp im Befehl LOAD an, um die vorherige Standardpriorität für Begrenzer zu verwenden.
- Zum Ausführen einer Ladeoperation für den Dateityp CURSOR, bei der das Schlüsselwort DATABASE in der Anweisung DECLARE CURSOR angegeben wurde, wird die Benutzer-ID mit Kennwort zur Authentifizierung in der Datenbank, zu der momentan eine Verbindung (für die Ladeoperation) besteht, für die Authentifizierung in der Quellendatenbank verwendet, die in der Option DATABASE der Anweisung DECLARE CURSOR angegeben ist. Wenn für die Verbindung zur zu ladenden Datenbank keine Benutzer-ID oder kein Kennwort angegeben wurde, müssen eine Benutzer-ID und ein Kennwort für die Quellendatenbank während der Anweisung DECLARE CURSOR angegeben werden.
- Das Laden einer mehrteiligen PC/IXF-Datei, deren einzelne Teile von einem Windows-System in ein AIX® -System kopiert werden, wird unterstützt. Die Namen aller Dateien müssen im Befehl LOAD
angegeben werden. Beispiel:
LOAD FROM DATA.IXF, DATA.002 OF IXF INSERT INTO TABLE1. Das Laden von logisch aufgeteilten PC/IXF-Dateien in das Betriebssystem Windows wird nicht unterstützt. - Beim erneuten Starten einer fehlgeschlagenen LOAD-Operation wird das bestehende Verhalten insofern beibehalten, als in der BUILD-Phase die Verwendung des REBUILD-Modus für Indizes erzwungen wird.
- Das Ladedienstprogramm generiert möglicherweise eine sehr große Kopie der Imagedatei, wenn die Option COPY YES verwendet wird. Dieses Verhalten wird erwartet, wenn der Befehl LOAD einen kompletten Datenpuffer in das Kopienimage für jeden geladenen LOB/LF-Spaltenwert schreibt. Der Puffer ist ein internes Objekt, dessen Größe durch mehrere interne und externe Faktoren bestimmt wird. Gewöhnlich liegt die Puffergröße zwischen 68 KB und einigen Hundert KB.
- Das Laden von XML-Dokumenten zwischen Datenbanken wird nicht unterstützt und gibt die Fehlernachricht SQL1407N zurück.
- Das Dienstprogramm LOAD bietet keine Unterstützung für das Laden in Tabellen, in denen Spalten enthalten sind, die auf abgeschirmte Prozeduren verweisen. Wenn Sie für eine solche Tabelle den Befehl LOAD absetzen, erhalten Sie die Fehlernachricht SQL1376N. Sie können diese Einschränkung umgehen, indem Sie die Routine neu definieren, sodass sie nicht abgeschirmt ist, oder das Dienstprogramm IMPORT verwenden.
- Wenn eine Tabelle einen generierten Spaltenausdruck enthält, in dem die benutzerdefinierte Funktion eine kompilierte zusammengesetzte SQL ist, können Sie das Dienstprogramm LOAD nur mit dem Dateitypänderungswert von
generatedoverrideverwenden, um Daten in die Tabelle einzufügen. Sie können auch das Importdienstprogramm verwenden, um Daten in diese Tabellen einzufügen. - Wenn die Datenbanktabelle implizit verdeckte Spalten enthält, müssen Sie angeben, ob Daten für die verdeckten Spalten in die Ladeoperation eingeschlossen werden sollen.
- Das Importdienstprogramm gleicht die Anzahl der Spalten in einer Tabelle nicht mit der Anzahl der Felder in einer Datendatei ab. Das Dienstprogramm prüft, ob die Datendatei ausreichend Daten enthält. Wenn eine Zeile in der Datendatei nicht ausreichend Spalten mit Daten enthält, wird die Zeile entweder mit einer Warnung zurückgewiesen, wenn die entsprechenden Tabellenspalten ohne Daten als NOT NULL definiert sind, oder sie wird erfolgreich ohne Warnung eingefügt, wenn die entsprechenden Tabellenspalten als NULL definiert sind. Wenn eine Zeile eine höhere als die erforderliche Anzahl von Spalten enthält, wird die ausreichende Anzahl Spalten verarbeitet, während die restlichen Datenspalten übergangen werden. Dabei wird keine Warnung ausgegeben.
- Die STATISTICS-Optionen funktionieren nur für die Option LOAD REPLACE und nicht für andere Optionen des Befehls LOAD.
- Wenn das Dienstprogramm LOAD mit der Option COPY YES verwendet wird und die Tabelle LOB-Spalten enthält, erzwingt LOAD immer das Verhalten COMPACT, selbst wenn die LOB-Spalte mit NOT COMPACT definiert ist.
Zusammenfassung der Wörterverzeichnisverwaltung mit LOAD TERMINATE und LOAD RESTART
Die folgende Tabelle fasst das Verhalten der Komprimierungswörterverzeichnisverwaltung für die LOAD-Verarbeitung unter der Richtlinie TERMINATE zusammen.
| Tabellenattribut COMPRESS | Datenwörterverzeichnis für Tabellenzeilen vor LOAD vorhanden | Wörterverzeichnis für XML-Speicherobjekte vor Operation LOAD vorhanden1 | TERMINATE: LOAD REPLACE KEEPDICTIONARY oder LOAD INSERT | TERMINATE: LOAD REPLACE RESETDICTIONARY |
|---|---|---|---|---|
| YES | YES | YES | Vorhandene Wörterverzeichnisse beibehalten. | Kein Wörterverzeichnis wird beibehalten. 2 |
| YES | YES | NEIN | Vorhandenes Wörterverzeichnis beibehalten. | Es wird nichts beibehalten. 2 |
| YES | NEIN | YES | Vorhandenes Wörterverzeichnis beibehalten. | Es wird nichts beibehalten. |
| YES | NEIN | NEIN | Es wird nichts beibehalten. | Es wird nichts beibehalten. |
| NEIN | YES | YES | Vorhandene Wörterverzeichnisse beibehalten. | Es wird nichts beibehalten. |
| NEIN | YES | NEIN | Vorhandenes Wörterverzeichnis beibehalten. | Es wird nichts beibehalten. |
| NEIN | NEIN | YES | Vorhandenes Wörterverzeichnis beibehalten. | Es wird nichts beibehalten. |
| NEIN | NEIN | NEIN | Nichts ausführen. | Nichts ausführen. |
- Für das XML-Speicherobjekt einer Tabelle kann nur ein Komprimierungswörterverzeichnis erstellt werden, wenn die XML-Spalten der Tabelle in DB2 Version 9.7 oder einer höheren Version hinzugefügt werden bzw. wenn die Tabelle mithilfe einer Onlineoperation zum Versetzen von Tabellen migriert wird.
- Im Sonderfall, wenn für die Tabelle die Datenerfassung aktiviert ist, wird das Datenwörterverzeichnis für Tabellenzeilen beibehalten.
LOAD RESTART verkürzt eine Tabelle bis zum letzten erreichten Konsistenzpunkt. Im Rahmen der LOAD RESTART-Verarbeitung existiert ein Komprimierungswörterverzeichnis in der Tabelle, wenn es bereits beim Erreichen des letzten LOAD-Konsistenzpunkts in der Tabelle vorhanden war. In diesem Fall erstellt LOAD RESTART kein neues Wörterverzeichnis. Eine Zusammenfassung der möglichen Bedingungen finden Sie in Tabelle 4.
| Tabellenattribut COMPRESS | Datenwörterverzeichnis für Tabellenzeilen vor LOAD-Konsistenzpunkt vorhanden1 | Wörterverzeichnis für XML-Speicherobjekte vor letzter Operation LOAD vorhanden2 | RESTART: LOAD REPLACE KEEPDICTIONARY oder LOAD INSERT | RESTART: LOAD REPLACE RESETDICTIONARY |
|---|---|---|---|---|
| YES | YES | YES | Vorhandene Wörterverzeichnisse beibehalten. | Vorhandene Wörterverzeichnisse beibehalten. |
| YES | YES | NEIN | Datenwörterverzeichnis für Tabellenzeilen beibehalten und XML-Wörterverzeichnis auf der Basis von ADC erstellen. | Datenwörterverzeichnis für Tabellenzeilen beibehalten und XML-Wörterverzeichnis erstellen. |
| YES | NEIN | YES | Datenwörterverzeichnis für Tabellenzeilen auf der Basis von ADC erstellen. Vorhandenes XML-Wörterverzeichnis beibehalten. | Datenwörterverzeichnis für Tabellenzeilen erstellen. Vorhandenes XML-Wörterverzeichnis beibehalten. |
| YES | NEIN | NEIN | Datenwörterverzeichnis für Tabellenzeilen und XML-Wörterverzeichnis auf der Basis von ADC erstellen. | Datenwörterverzeichnis für Tabellenzeilen und XML-Wörterverzeichnis erstellen. |
| NEIN | YES | YES | Vorhandene Wörterverzeichnisse beibehalten. | Vorhandene Wörterverzeichnisse entfernen. |
| NEIN | YES | NEIN | Vorhandenes Datenwörterverzeichnis für Tabellenzeilen beibehalten. | Vorhandenes Datenwörterverzeichnis der Tabellenzeilen entfernen. |
| NEIN | NEIN | YES | Vorhandenes XML-Wörterverzeichnis beibehalten. | Vorhandenes XML-Wörterverzeichnis entfernen. |
| NEIN | NEIN | NEIN | Nichts ausführen. | Nichts ausführen. |
- Die Option SAVECOUNT ist für das Laden von XML-Daten nicht zulässig. Ladeoperationen, bei denen in der LOAD-Phase ein Fehler auftritt, werden vom Beginn der Operation an erneut gestartet.
- Für das XML-Speicherobjekt einer Tabelle kann nur ein Komprimierungswörterverzeichnis erstellt werden, wenn die XML-Spalten der Tabelle in DB2 Version 9.7 oder einer höheren Version hinzugefügt werden bzw. wenn die Tabelle mithilfe einer Onlineoperation zum Versetzen von Tabellen migriert wird.
Dateitypmodifikatoren für das Ladedienstprogramm
| Änderungswert | Beschreibung |
|---|---|
| anyorder | Dieser Modifikator gibt an, dass die Reihenfolge der Quellendaten nicht beibehalten werden muss. Die Verwendung dieses Modifikators bewirkt erhebliche zusätzliche Leistungsverbesserungen auf SMP-Systemen. Verwenden Sie diesen Modifikator mit dem Parameter cpu_parallelism. Wenn der Parameter cpu_parallelism den Wert 1 hat, wird dieser Modifikator ignoriert. Dieser Modifikator wird nicht unterstützt, wenn der Wert des Parameters SAVECOUNT größer als 0 ist, da die Recovery nach einem Systemabsturz nach einem Konsistenzpunkt erfordert, dass die Daten nacheinander geladen werden. Dieser Änderungswert wird implizit für alle Ladeoperationen für nach Spalten organisierte Tabellen, MDC-Tabellen und bereichspartitionierte Tabellen aktiviert. |
| cdeanalyzefrequency=x | x ist eine Zahl von 0 bis 99 (einschließlich). Dieser Wert steuert, von wie vielen Daten in der Analysephase eine Stichprobe erstellt wird, um ein Komprimierungswörterverzeichnis zu erstellen. In einem MPP-System (Massively Parallel Processing - exklusive Parallelverarbeitung) wird die Stichprobengröße nicht memberübergreifend aggregiert. Die Analysephase wird gestoppt, wenn das erste Member den Maximalwert erreicht. |
| generatedignore | Dieser Modifikator informiert das Ladedienstprogramm, dass Daten für alle generierten Spalten in der Datendatei vorhanden sind, aber ignoriert werden sollen. Dies führt dazu, dass Werte für alle generierten Spalten vom Dienstprogramm generiert werden. Dieser Modifikator kann weder mit dem Modifikator generatedmissing noch mit dem Modifikator generatedoverride kombiniert werden. |
| generatedmissing | Bei Angabe dieses Modifikators nimmt das Dienstprogramm an, dass die Eingabedatendatei keine Daten für die generierte Spalte (auch keine Nullen) enthält. Dies führt dazu, dass Werte für alle generierten Spalten vom Dienstprogramm generiert werden. Dieser Modifikator kann weder mit dem Modifikator generatedignore noch mit dem Modifikator generatedoverride kombiniert werden. |
| generatedoverride | Dieser Modifikator weist das Ladedienstprogramm an, die vom Benutzer bereitgestellten Daten für alle generierten Spalten in der Tabelle zu akzeptieren (im Gegensatz zu den normalen Regeln für diese Spaltenarten). Dies ist nützlich, wenn Sie Daten aus einem anderen Datenbanksystem migrieren oder wenn Sie eine Tabelle aus Daten laden, die mit der Option RECOVER DROPPED TABLE des Befehls ROLLFORWARD
DATABASE wiederhergestellt wurden. Bei Verwendung dieses Modifikators werden alle Zeilen ohne Daten (oder mit Nulldaten) für generierte Spalten zurückgewiesen, die keine Nullwerte enthalten können (SQL3116W). Bei Verwendung dieses Modifikators wird die Tabelle in den Status 'Festlegen der Integrität anstehend' versetzt. Um den Status 'Festlegen der Integrität anstehend' für die Tabelle aufzuheben, ohne die benutzerdefinierten Werte zu überprüfen, setzen Sie nach der Ladeoperation den folgenden Befehl ab:Um den Status 'Festlegen der Integrität anstehend' für die Tabelle aufzuheben und die Überprüfung der benutzerdefinierten Werte zu erzwingen, setzen Sie nach der Ladeoperation den folgenden Befehl ab:Wenn dieser Modifikator angegeben wird und eine generierte Spalte in einem der Partitionierungsschlüssel, Dimensionsschlüssel oder Verteilungsschlüssel vorhanden ist, konvertiert der Befehl LOAD den Modifikator automatisch in generatedignore und fährt mit dem Ladevorgang fort. Dies hat den Effekt, dass alle generierten Spaltenwerte neu generiert werden. Dieser Modifikator kann weder mit dem Modifikator generatedmissing noch mit dem Modifikator generatedignore kombiniert werden. Dieser Änderungswert kann nicht für nach Spalten organisierte Tabellen verwendet werden (SQLSTATE 42858). Zufallsverteilungstabellen, die die Methode zur Generierung von Zufallswerten verwenden, haben eine intern generierte Spalte mit dem Namen RANDOM_DISTRIBUTION_KEY. Dieser Modifikator gilt nicht für diese Spalte, sondern nur für die anderen generierten Spalten in der Tabelle. Die Werte für RANDOM_DISTRIBUTION_KEY werden immer neu generiert. |
| identityignore | Dieser Modifikator informiert das Ladedienstprogramm, dass Daten für die Identitätsspalte in der Datendatei vorhanden sind, aber ignoriert werden sollen. Dies führt dazu, dass das Dienstprogramm alle Identitätswerte generiert. Das Verhalten ist für mit GENERATED ALWAYS und für mit GENERATED BY DEFAULT definierte Identitätsspalten identisch. Dies bedeutet, dass für mit GENERATED ALWAYS definierte Spalten keine Zeilen zurückgewiesen werden. Dieser Modifikator kann weder mit dem Modifikator identitymissing noch mit dem Modifikator identityoverride kombiniert werden. |
| identitymissing | Bei Angabe dieses Modifikators nimmt das Dienstprogramm an, dass die Eingabedatendatei keine Daten für die Identitätsspalte enthält (nicht einmal Nullwerte), und generiert daher für jede Zeile einen Wert. Das Verhalten ist für mit GENERATED ALWAYS und für mit GENERATED BY DEFAULT definierte Identitätsspalten identisch. Dieser Modifikator kann weder mit dem Modifikator identityignore noch mit dem Modifikator identityoverride kombiniert werden. |
| identityoverride | Dieser Modifikator sollte nur verwendet werden, wenn eine mit GENERATED ALWAYS definierte Identitätsspalte in der zu ladenden Tabelle vorhanden ist. Er weist das Dienstprogramm an, explizite Daten ungleich null für eine solche Spalte zu akzeptieren (im Gegensatz zu den normalen Regeln für diese Typen von Identitätsspalten). Dies ist hilfreich, wenn Sie Daten von einem anderen Datenbanksystem migrieren, wenn die Tabelle als GENERATED ALWAYS definiert sein muss oder wenn Sie eine Tabelle aus Daten laden, die mit der Option DROPPED TABLE RECOVERY im Befehl ROLLFORWARD DATABASE wiederhergestellt wurden. Bei Verwendung dieses Modifikators werden alle Zeilen ohne Daten (oder mit Nulldaten) für die Identitätsspalte zurückgewiesen (SQL3116W). Dieser Modifikator kann weder mit dem Modifikator identitymissing noch mit dem Modifikator identityignore kombiniert werden. Wenn diese Option verwendet wird, versucht das Ladedienstprogramm nicht, die Eindeutigkeit von Werten in der Identitätsspalte der Tabelle beizubehalten oder zu überprüfen. |
| implicitlyhiddeninclude | Bei Angabe dieses Modifikators geht das Dienstprogramm davon aus, dass die Eingabedatendatei Daten für die implizit verdeckten Spalten enthält und diese Daten ebenfalls geladen werden. Dieser Modifikator kann nicht zusammen mit dem Modifikator implicitlyhiddenmissing verwendet werden. Informationen zur Vorrangstellung bei Angabe mehrerer Modifikatoren finden Sie im Abschnitt Hinweise . Zufallsverteilungstabellen, die die Methode zur Generierung von Zufallswerten verwenden, haben eine verdeckte Spalte namens RANDOM_DISTRIBUTION_KEY als Verteilungsspalte. Dieser Modifikator gilt nicht für diese Spalte, sondern nur für die anderen verdeckten Spalten in der Tabelle. RANDOM_DISTRIBUTION_KEY wird so behandelt, als ob die Angabe fehlt. |
| implicitlyhiddenmissing | Bei Angabe dieses Modifikators nimmt das Dienstprogramm an, dass die Eingabedatei keine Daten für die implizit verdeckten Spalten enthält, und generiert Werte für diese verdeckten Spalten. Dieser Modifikator kann nicht zusammen mit dem Modifikator implicitlyhiddeninclude verwendet werden. Informationen zur Vorrangstellung bei Angabe mehrerer Modifikatoren finden Sie im Abschnitt Hinweise . |
| indexfreespace=x | x ist eine Zahl von 0 bis 99 (einschließlich). Der Wert wird interpretiert als Prozentsatz jeder Indexseite, der bei der Neuerstellung des Index als freier Speicherbereich frei gelassen werden soll. Beim Laden mit INDEXING MODE INCREMENTAL wird diese Option ignoriert. Der erste Eintrag auf einer Seite wird ohne Einschränkung hinzugefügt; nachfolgende Einträge werden so hinzugefügt, dass der Schwellenwert für freien Speicherbereich in Prozent gewahrt bleibt. Der Standardwert ist der Wert, der zum Zeitpunkt der Indexerstellung verwendet wurde. Dieser Wert hat Vorrang vor dem Wert für PCTFREE, der in der Anweisung CREATE INDEX angegeben ist. Die Option indexfreespace wirkt sich nur auf Indexseiten aus. |
| lobsinfile | lob-pfad gibt den Pfad zu den Dateien an, die LOB-Daten enthalten. Die ASC-, DEL-oder IXF-Ladeeingabedateien enthalten die Namen der Dateien, die LOB-Daten in der LOB-Spalte haben. Diese Option wird in Kombination mit dem Dateityp CURSOR nicht unterstützt. Die Klausel LOBS FROM gibt an, wo sich die LOB-Dateien befinden, wenn der Änderungswert lobsinfile verwendet wird. Die Klausel LOBS FROM aktiviert implizit das lobsinfile-Verhalten. Die Klausel LOBS FROM überträgt die Liste der Pfade an das Dienstprogramm LOAD, die beim Laden der Daten nach den LOB-Dateien durchsucht werden sollen. Jeder Pfad enthält mindestens eine Datei, die mindestens ein LOB enthält, auf das durch eine LOB-Positionskennung (LLS - LOB Location Specifier) in der Datendatei verwiesen wird. Die LOB-Positionskennung ist eine Zeichenfolgedarstellung der Position eines LOB in einer Datei, die im LOB-Dateipfad gespeichert ist. Das Format einer LLS ist filename.ext.nnn.mmm/, wobei filename.ext der Name der Datei ist, die das LOB enthält, nnn der Offset in Byte des LOB in der Datei und mmm die Länge des LOB in Byte ist. Wenn z. B. die Zeichenfolge db2exp.001.123.456/ in der Datendatei gespeichert ist, befindet sich das LOB in der Datei db2exp.001 an der relativen Position 123 und ist 456 Byte lang. Um einen LOB-Nullwert anzugeben, geben Sie die Größe als -1 ein. Wird als Größe 0 angegeben, wird das LOB wie ein LOB mit der Länge null behandelt. Bei LOB-Nullwerten mit der Länge -1 werden die relative Position und der Dateiname ignoriert. Beispielsweise kann die LLS eines null LOB-LOB-Typs db2exp.001.7.-1/sein. |
| maxanalyzesize=x | x ist die Größe mit dem Wert < Zahl > < Megabyte | Gigabytes>. Die Standardgröße ist 128 GB. maxanalyzesize steuert, von wie vielen Daten in der Analysephase eine Stichprobe erstellt wird, um ein Komprimierungswörterverzeichnis zu erstellen. In einem MPP-System (Massively Parallel Processing - exklusive Parallelverarbeitung) wird die Stichprobengröße nicht memberübergreifend aggregiert. Die Analysephase wird gestoppt, wenn das erste Member den Maximalwert erreicht. Anmerkung: Der Wert 0 bedeutet unbegrenzt (volle Größe). Hier ein Beispiel:
|
| noheader | Überspringt den Headerprüfcode (nur bei Ladeoperationen in Tabellen, die sich in einer Partitionsgruppe mit Einzelpartitionsdatenbanken befinden). Wenn der MPP-Standardladevorgang (Modus PARTITION_AND_LOAD) für eine Tabelle verwendet wird, die sich in einer Partitionsgruppe mit Einzelpartitionsdatenbanken befindet, wird nicht erwartet, dass die Datei einen Header enthält. Daher ist der Modifikator noheader nicht erforderlich. Wenn der Modus LOAD_ONLY verwendet wird, wird erwartet, dass die Datei einen Header enthält. Sie müssen den Modifikator noheader nur in dem Fall verwenden, wenn Sie eine LOAD_ONLY-Operation mit einer Datei ohne Header durchführen möchten. |
| norowwarnings | Unterdrückt alle Warnungen zu zurückgewiesenen Zeilen. |
| pagefreespace=x | x ist eine Zahl von 0 bis 100 (einschließlich). Der Wert wird interpretiert als Prozentsatz jeder Datenseite, der als freier Speicherbereich frei gelassen werden soll. Wenn der angegebene Wert aufgrund der Mindestzeilenlänge ungültig ist (beispielsweise eine mindestens 3000 Byte lange Zeile und ein x-Wert von 50), wird die Zeile auf eine neue Seite gestellt. Wenn ein Wert von 100 angegeben wird, befindet sich jede Zeile auf einer neuen Seite. Der PCTFREE-Wert einer Tabelle bestimmt die Größe des freien Speicherbereichs, der pro Seite festgelegt wird. Wenn weder ein pagefreespace-Wert für die Ladeoperation noch ein PCTFREE-Wert für eine Tabelle festgelegt wurde, belegt das Dienstprogramm auf jeder Seite so viel Speicherplatz wie möglich. Der durch pagefreespace festgelegte Wert überschreibt den für die Tabelle angegebenen Wert für PCTFREE. |
| periodignore | Dieser Modifikator informiert das Ladedienstprogramm, dass Daten für die Zeitraumspalten in der Datendatei vorhanden sind, aber ignoriert werden sollen. Bei Angabe dieses Modifikators werden alle Zeitraumspaltenwerte vom Dienstprogramm generiert. Dieser Modifikator kann weder mit dem Modifikator periodmissing noch mit dem Modifikator periodoverride kombiniert werden. |
| periodmissing | Bei Angabe dieses Modifikators nimmt das Dienstprogramm an, dass die Eingabedatendatei keine Daten für die Zeitraumspalten enthält. Bei Angabe dieses Modifikators werden alle Zeitraumspaltenwerte vom Dienstprogramm generiert. Dieser Modifikator kann weder mit dem Modifikator periodignore noch mit dem Modifikator periodoverride kombiniert werden. |
| periodoverride | Dieser Modifikator weist das Ladedienstprogramm an, die vom Benutzer bereitgestellten Daten für GENERATED ALWAYS AS ROW BEGIN und GENERATED ALWAYS AS ROW END in einer temporalen Tabelle für Systemzeitraum zu akzeptieren. Dieses Verhalten steht im Widerspruch zu den normalen Regeln für diese Typen von Spalten. Dieser Modifikator kann bei der Verwaltung von Protokolldaten oder beim Laden von Daten mit Zeitmarken in eine temporale Tabelle für Systemzeitraum nützlich sein. Bei Verwendung dieses Modifikators werden alle Zeilen ohne Daten oder mit Nulldaten in der Spalte mit ROW BEGIN oder ROW END zurückgewiesen. |
| rowchangetimestampignore | Dieser Modifikator informiert das Ladedienstprogramm, dass Daten für die Spalte für Zeilenänderungszeitmarken in der Datendatei vorhanden sind, aber ignoriert werden sollen. Dies führt dazu, dass Werte für alle Spalten für Zeilenänderungszeitmarken vom Dienstprogramm generiert werden. Das Verhalten ist für mit GENERATED ALWAYS und für mit GENERATED BY DEFAULT definierte Spalten identisch. Dies bedeutet, dass für mit GENERATED ALWAYS definierte Spalten keine Zeilen zurückgewiesen werden. Dieser Modifikator kann weder mit dem Modifikator rowchangetimestampmissing noch mit dem Modifikator rowchangetimestampoverride kombiniert werden. |
| rowchangetimestampmissing | Bei Angabe dieses Modifikators nimmt das Dienstprogramm an, dass die Eingabedatendatei keine Daten für die Spalte für Zeilenänderungszeitmarken enthält (nicht einmal Nullwerte), und generiert daher für jede Zeile einen Wert. Das Verhalten ist für mit GENERATED ALWAYS und für mit GENERATED BY DEFAULT definierte Spalten identisch. Dieser Modifikator kann weder mit dem Modifikator rowchangetimestampignore noch mit dem Modifikator rowchangetimestampoverride kombiniert werden. |
| rowchangetimestampoverride | Dieser Modifikator sollte nur verwendet werden, wenn eine mit GENERATED ALWAYS definierte Spalte für Zeilenänderungszeitmarken in der zu ladenden Tabelle vorhanden ist. Er weist das Dienstprogramm an, explizite Daten ungleich null für eine solche Spalte zu akzeptieren (im Gegensatz zu den normalen Regeln für diese Typen von Spalten für Zeilenänderungszeitmarken). Dies ist hilfreich, wenn Sie Daten von einem anderen Datenbanksystem migrieren, wenn die Tabelle als GENERATED ALWAYS definiert sein muss oder wenn Sie eine Tabelle aus Daten laden, die mit der Option DROPPED TABLE RECOVERY im Befehl ROLLFORWARD DATABASE wiederhergestellt wurden. Bei Verwendung dieses Modifikators werden alle Zeilen ohne Daten (oder mit Nulldaten) für die Spalte für Zeilenänderungszeitmarken zurückgewiesen (SQL3116W). Dieser Modifikator kann weder mit dem Modifikator rowchangetimestampmissing noch mit dem Modifikator rowchangetimestampignore kombiniert werden. Wenn diese Option verwendet wird, versucht das Ladedienstprogramm nicht, die Eindeutigkeit von Werten in der Spalte für Zeilenänderungszeitmarken der Tabelle beizubehalten oder zu überprüfen. |
| seclabelchar | Gibt an, dass Sicherheitskennsätze in der Eingabequellendatei im Zeichenfolgeformat vorliegen und nicht im standardmäßigen codierten numerischen Format. LOAD konvertiert beim Laden jeden Sicherheitskennsatz in das interne Format. Liegt eine Zeichenfolge nicht im richtigen Format vor, wird die Zeile nicht geladen und eine Warnung (SQLSTATE 01H53, SQLCODE SQL3242W) wird zurückgegeben. Stellt eine Zeichenfolge keinen gültigen Sicherheitskennsatz dar, der Bestandteil der zum Schutz der Tabelle verwendeten Sicherheitsrichtlinie ist, wird die Zeile nicht geladen und eine Warnung (SQLSTATE 01H53, SQLCODE SQL3243W) wird zurückgegeben. Dieser Änderungswert kann nicht angegeben werden, wenn der Änderungswert seclabelname angegeben wird. Andernfalls schlägt das Laden fehl und ein Fehler (SQLCODE SQL3525N) wird zurückgegeben. Wenn Sie eine Tabelle bestehend aus einer einzigen Spalte
DB2SECURITYLABEL haben, könnte die Datendatei folgendermaßen aussehen:Um diese Daten zu laden oder zu importieren, muss der Dateitypmodifikator seclabelchar verwendet werden:
|
| seclabelname | Gibt an, dass die Sicherheitskennsätze in der Eingabequellendatei über ihren Namen und nicht über das codierte numerische Standardformat angegeben werden. LOAD konvertiert den Namen in den entsprechenden Sicherheitskennsatz, falls er vorhanden ist. Ist für die zum Schutz der Tabelle verwendete Sicherheitsrichtlinie kein Sicherheitskennsatz mit dem angegebenen Namen vorhanden, wird die betreffende Zeile nicht geladen und eine Warnung (SQLSTATE 01H53, SQLCODE SQL3244W) zurückgegeben. Dieser Änderungswert kann nicht angegeben werden, wenn der Änderungswert seclabelchar angegeben wird. Andernfalls schlägt das Laden fehl und ein Fehler (SQLCODE SQL3525N) wird zurückgegeben. Wenn Sie eine Tabelle bestehend aus einer einzigen Spalte
DB2SECURITYLABEL haben, könnte die Datendatei aus Sicherheitskennsatznamen ähnlich den folgenden bestehen:Um diese Daten zu laden oder zu importieren, muss der Dateitypmodifikator seclabelname verwendet werden:
Hinweis: Wenn der Dateityp ASC ist, werden alle Leerzeichen nach dem Namen des Sicherheitskennsatzes als Teil des Namens interpretiert. Um dies zu vermeiden, müssen Sie den Dateitypmodifikator striptblanks verwenden, um sicherzustellen, dass die Leerzeichen entfernt werden.
|
| totalfreespace=x | x ist eine ganze Zahl größer als oder gleich 0. Der Wert wird als Prozentsatz der Gesamtzahl der Seiten in der Tabelle interpretiert, die an das Ende der Tabelle als freier Speicherbereich angehängt werden soll. Wenn x beispielsweise den Wert 20 hat und die Tabelle nach dem Laden der Daten 100 Datenseiten enthält, werden 20 zusätzliche leere Seiten hinzugefügt. Die Gesamtzahl der Datenseiten für die Tabelle beträgt also 120. Die Summe der Datenseiten berücksichtigt nicht die Anzahl der Indexseiten in der Tabelle. Diese Option wirkt sich nicht auf das Indexobjekt aus. Wenn zwei Ladevorgänge mit dieser Option ausgeführt werden, wird der am Ende des ersten Ladevorgangs angefügte Speicherbereich nicht vom zweiten Ladevorgang wiederverwendet. |
| transactionidignore | Dieser Modifikator informiert das Ladedienstprogramm, dass Daten für die Spalte mit der Transaktionsstart-ID in der Datendatei vorhanden sind, aber ignoriert werden sollen. Bei Angabe dieses Modifikators wird der Wert für die Spalte mit der Transaktionsstart-ID vom Dienstprogramm generiert. Dieser Modifikator kann weder mit dem Modifikator transactionidmissing noch mit dem Modifikator transactionidoverride kombiniert werden. |
| transactionidmissing | Bei Angabe dieses Modifikators nimmt das Dienstprogramm an, dass die Eingabedatendatei keine Daten für die Spalten mit der Transaktionsstart-ID enthält. Bei Angabe dieses Modifikators wird der Wert für die Spalte mit der Transaktionsstart-ID vom Dienstprogramm generiert. Dieser Modifikator kann weder mit dem Modifikator transactionidignore noch mit dem Modifikator transactionidoverride kombiniert werden. |
| transactionidoverride | Dieser Modifikator weist das Ladedienstprogramm an, vom Benutzer bereitgestellte Daten für die als GENERATED ALWAYS AS TRANSACTION START ID definierte Spalte in einer temporalen Tabelle für Systemzeitraum zu akzeptieren. Dieses Verhalten steht im Widerspruch zu den normalen Regeln für diesen Spaltentyp. Bei Verwendung dieses Modifikators werden alle Zeilen ohne Daten oder mit Nulldaten in der mit TRANSACTION START ID definierten Spalte zurückgewiesen. |
| usedefaults | Wenn eine Quellenspalte für eine Zieltabellenspalte angegeben wurde, aber für eine oder mehrere Zeileninstanzen keine Daten enthält, werden Standardwerte geladen. Es folgen Beispiele für fehlende Daten:
|
| Änderungswert | Beschreibung |
|---|---|
| codepage=x | x ist eine ASCII-Zeichenfolge. Der Wert wird als Codepage der Daten im Eingabedataset interpretiert. Konvertiert Zeichendaten (und in Zeichen angegebene numerische Daten) während der Ladeoperation aus dieser Codepage in die Datenbankcodepage. Dabei gelten die folgenden Regeln:
Diese Option wird in Kombination mit dem Dateityp CURSOR nicht unterstützt. |
| dateformat="x" | x ist das Format des Datums in der Quelle file.1 Gültige Datumselemente sind:Jedem Element, das nicht angegeben ist, wird der Standardwert 1 zugewiesen. Es folgen einige Beispiele für Datumsformate:
|
| dumpfile = x | x ist der (entsprechend der Serverdatenbankpartition) vollständig qualifizierte Name einer Ausnahmedatei, in die zurückgewiesene Zeilen geschrieben werden. Es werden maximal 32 KB Daten pro Datensatz geschrieben. Der folgende Abschnitt ist ein Beispiel, in dem gezeigt wird, wie eine Speicherauszugsdatei angegeben wird:Die Datei wird vom Instanzeigner erstellt und gehört diesem. Verwenden Sie zum Überschreiben der Standarddateiberechtigungen den Dateitypmodifikator dumpfileaccessall. Hinweis:
|
| dumpfileaccessall | Erteilt beim Erstellen einer Speicherauszugsdatei Lesezugriff für 'OTHERS'. Dieser Dateitypmodifikator ist nur in den folgenden Fällen gültig:
Wenn die angegebene Datei bereits vorhanden ist, werden ihre Berechtigungen nicht geändert. |
| fastparse | Reduziert die Syntaxprüfung auf vom Benutzer bereitgestellte Spaltenwerte. Dadurch verbessert sich die Leistung. Die Architektur der Tabellen ist garantiert korrekt (das Dienstprogramm führt ausreichend Datenprüfung durch, um eine Segmentverletzung oder einen Trap zu verhindern). Die Kohärenz der Daten wird jedoch nicht geprüft. Verwenden Sie die Option fastparse nur, wenn Sie sicher sind, dass alle Eingabedaten gültig sind. Wenn ungültige Daten, z. B. eine falsch formatierte Zeitmarke wie die folgende: 1>0-00-20-07.11.12.000000, mit der Option fastparse übergeben werden, können einige SQL-Operationen die ungültigen Daten ohne Erkennung an andere Teile der Datenbank weitergeben. Wenn die ungültigen Daten später erkannt werden, kann es schwierig sein, ihren Ursprung oder die Anzahl der anderen Positionen, an die die Daten kopiert wurden, zu verfolgen. |
| implieddecimal | Die Position eines impliziten Dezimalzeichens wird durch die Spaltendefinition bestimmt. Es wird nicht mehr angenommen, dass es sich am Ende des Werts befindet. Beispiel: Der Wert 12345 wird in eine Spalte DECIMAL (8, 2) als 123.45geladen, nicht 12345.00.Dieser Modifikator kann nicht zusammen mit dem Modifikator packeddecimal verwendet werden. |
| timeformat="x" | x ist das Format der Zeit in der Quelle file.1 Gültige Zeitelemente sind:
Jedem nicht angegebenen Element wird der Standardwert 0 zugewiesen. Es folgen einige Beispiele für Zeitformate:
|
| timestampformat="x" | x ist das Format der Zeitmarke in der Quellendatei.1 Gültige Zeitmarkenelemente sind: |
| timestampformat="x" (Forts.) | Für nicht angegebene YYYY-, M-, MM-, D-, DD- oder DDD-Elemente wird ein Standardwert von 1 zugewiesen. Einem nicht angegebenen Element MMM wird der Standardwert 'Jan' zugeordnet. Allen anderen nicht angegebenen Elementen wird der Standardwert 0 zugeordnet. Es folgt ein Beispiel für ein Zeitmarkenformat:
Die gültigen Werte für das MMM-Element sind: 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov' und 'dec'. Bei diesen Werten wird die Groß-/Kleinschreibung nicht beachtet. Wenn der Modifikator timestampformat nicht angegeben ist, formatiert das Ladedienstprogramm das Zeitmarkenfeld mit einem der beiden folgenden Formate:
Das Ladedienstprogramm wählt das Format aus, indem es das Trennzeichen zwischen DD und HH prüft. Wenn es sich um einen Bindestrich '-' handelt, verwendet das Ladedienstprogramm das reguläre Format mit Bindestrichen und Punkten (JJJJ-MM-DD-HH.MM.SS). Wenn es sich um ein Leerzeichen handelt, erwartet das Ladedienstprogramm einen Doppelpunkt (:) zum Trennen von HH, MM und SS. Wenn Sie in beiden Formaten das Mikrosekundenfeld (UUUUUU) angeben, erwartet das Dienstprogramm LOAD den Punkt '.' als Trennzeichen. Es kann entweder YYYY-MM-DD-HH.MM.SS.UUUUUU oder YYYY-MM-DD HH:MM:SS.UUUUUU akzeptiert werden. Das folgende Beispiel veranschaulicht, wie Daten mit benutzerdefinierten Datums- und Zeitformaten in eine Tabelle mit dem Namen 'schedule' geladen werden:
|
| usegraphiccodepage | Wenn usegraphiccodepage angegeben wird, wird angenommen, dass Daten, die in Grafik- oder DBCLOB-Felder geladen werden, in der Grafikcodepage vorliegen. Für den Rest der Daten wird die Zeichencodepage angenommen. Die Grafikcodepage ist der Zeichencodepage zugeordnet. LOAD bestimmt die Zeichencodepage entweder über den Modifikator codepage, wenn dieser angegeben ist, oder über die Codepage der Datenbank, wenn der Modifikator codepage nicht angegeben ist. Dieser Modifikator sollte nur mit der begrenzten Datendatei verwendet werden, die von der Recovery von gelöschten Tabellen generiert wird, wenn die Tabelle, die wiederhergestellt wird, Grafikdaten enthält. Einschränkungen Der Änderungswert usegraphiccodepage DARF NICHT für DEL-Dateien angegeben werden, die mit dem Dienstprogramm EXPORT erstellt wurden, da die in diesen Dateien enthaltenen Daten nur in einer Codepage codiert sind. Der Modifikator usegraphiccodepage wird auch von DBCLOB-Daten (große Doppelbytezeichenobjekte) in Dateien ignoriert. |
| xmlchar | Gibt an, dass XML-Dokumente in der Zeichencodepage codiert sind. Diese Option ist hilfreich bei der Verarbeitung von XML-Dokumenten, die in der angegebenen Zeichencodepage codiert sind, aber keine Codierungsdeklaration enthalten. Wenn ein Deklarationstag vorhanden ist und ein Codierungsattribut (encoding) enthält, muss die Codierung bei jedem Dokument mit der Zeichencodepage übereinstimmen. Andernfalls wird die Zeile mit dem Dokument zurückgewiesen. Die Zeichencodepage ist der Wert, der durch den Dateitypmodifikator codepage angegeben wird, bzw. die Anwendungscodepage, falls dieser Wert nicht angegeben ist. Standardmäßig sind Dokumente entweder in Unicode codiert oder sie enthalten ein Deklarationstag mit einem Codierungsattribut. |
| xmlgraphic | Gibt an, dass XML-Dokumente in der angegebenen Grafikcodepage codiert sind. Diese Option ist hilfreich bei der Verarbeitung von XML-Dokumenten, die in einer bestimmten Grafikcodepage codiert sind, aber keine Codierungsdeklaration enthalten. Wenn ein Deklarationstag vorhanden ist und ein Codierungsattribut (encoding) enthält, muss die Codierung bei jedem Dokument mit der Grafikcodepage übereinstimmen. Andernfalls wird die Zeile mit dem Dokument zurückgewiesen. Die Zeichencodepage ist die grafische Komponente des Werts, der durch den Dateitypmodifikator codepage angegeben wird, bzw. die grafische Komponente der Anwendungscodepage, falls dieser Wert nicht angegeben ist. Standardmäßig sind Dokumente in Unicode codiert oder sie enthalten ein Deklarationstag mit einem Codierungsattribut. |
| Änderungswert | Beschreibung |
|---|---|
| binarynumerics | Numerische Daten (mit Ausnahme von DECIMAL) müssen im Binärformat vorliegen, nicht in der Zeichendarstellung. Dadurch werden aufwendige Konvertierungen vermieden. Dieser Modifikator wird nur mit positionsgebundenem ASC unterstützt, wobei Datensätze mit fester Länge verwendet werden, die Sie mit der Option reclen angeben. Dabei gelten die folgenden Regeln:
Die Daten von Spalten, für die dieser Modifikator gilt, dürfen keine Nullwerte (NULLs) enthalten. Leerzeichen (normalerweise als NULL interpretiert) werden als Binärwert interpretiert, wenn dieser Modifikator verwendet wird. |
| nochecklengths | Wenn nochecklengths angegeben ist, wird versucht, jede einzelne Zeile zu laden, selbst wenn die Quellendaten eine Spaltendefinition haben, die die Größe der Zielspaltentabelle überschreitet. Solche Zeilen können erfolgreich geladen werden, wenn die Quellendaten durch die Codepagekonvertierung verkleinert werden. 4-Byte-EUC-Daten in der Quelle können z. B. auf 2-Byte-DBCS-Daten im Ziel verkleinert werden und benötigen dann nur noch den halben Platz. Diese Option ist besonders nützlich, wenn bekannt ist, dass die Quellendaten trotz nicht übereinstimmender Spaltendefinitionen in allen Fällen passen. |
| nullindchar=x | x ist ein einzelnes Zeichen. Ändert das Zeichen für einen Nullwert in x. Der Standardwert von x ist Y.2Bei diesem Modifikator wird für EBCDIC-Datendateien die Groß-/Kleinschreibung beachtet, sofern es sich nicht um ein englisches Zeichen handelt. Wenn als Nullanzeiger beispielsweise der Buchstabe |
| packeddecimal | Lädt gepackte Dezimaldaten direkt, da der Modifikator binarynumerics nicht den Feldtyp DECIMAL einschließt. Dieser Modifikator wird nur mit positionsgebundenem ASC unterstützt, wobei Datensätze mit fester Länge verwendet werden, die Sie mit der Option reclen angeben. Die folgenden Werte für das Vorzeichenhalbbyte werden unterstützt:
Die Daten von Spalten, für die dieser Modifikator gilt, dürfen keine Nullwerte (NULLs) enthalten. Leerzeichen (normalerweise als NULL interpretiert) werden als Binärwert interpretiert, wenn dieser Modifikator verwendet wird. Unabhängig von der Serverplattform wird angenommen, dass die Byteanordnung der Binärdaten in der Ladequellendatei Big Endian ist, d. h., bei Verwendung dieses Modifikators unter Windows-Betriebssystemen darf die Byteanordnung nicht umgekehrt werden. Dieser Modifikator kann nicht zusammen mit dem Modifikator implieddecimal verwendet werden. |
| reclen=x | x ist eine ganze Zahl mit einem Maximalwert von 32 767. x Zeichen werden für jede Zeile gelesen, und ein Zeilenvorschubzeichen wird nicht verwendet, um das Ende der Zeile anzuzeigen. |
| striptblanks | Schneidet nachfolgende Leerzeichen ab, wenn Daten in ein Feld variabler Länge geladen werden. Wird diese Option nicht angegeben, werden Leerzeichen beibehalten. Diese Option kann nicht zusammen mit striptnulls angegeben werden. Diese Optionen schließen sich gegenseitig aus. Diese Option ersetzt die veraltete Option t, die nur aus Gründen der Abwärtskompatibilität unterstützt wird. |
| striptnulls | Schneidet nachfolgende Nullwerte (Zeichen 0x00) ab, wenn Daten in ein Feld variabler Länge geladen werden. Wird diese Option nicht angegeben, werden Nullwerte (NULLs) beibehalten. Diese Option kann nicht zusammen mit striptblanks angegeben werden. Diese Optionen schließen sich gegenseitig aus. Diese Option ersetzt die veraltete Option padwithzero, die nur aus Gründen der Abwärtskompatibilität unterstützt wird. |
| zoneddecimal | Lädt gezonte Dezimaldaten, da der Modifikator binarynumerics nicht den Feldtyp DECIMAL einschließt. Dieser Modifikator wird nur mit positionsgebundenem ASC unterstützt, wobei Datensätze mit fester Länge verwendet werden, die Sie mit der Option reclen angeben. Halbbytevorzeichenwerte können einer der folgenden Werte sein:
Unterstützte Werte für Ziffern sind Unterstützte Werte für Zonen sind |
| Änderungswert | Beschreibung |
|---|---|
| chardelx | x ist ein einzelnes Zeichen, das als Zeichenfolgebegrenzer verwendet wird. Der Standardwert ist ein Anführungszeichen ("). Das angegebene Zeichen wird anstelle von doppelten Anführungszeichen verwendet, um eine Zeichenfolge einzuschließen.2, 3 Wenn Sie explizit das doppelte Anführungszeichen (") angeben möchten als Zeichenfolgebegrenzer sollten Sie ihn wie folgt angeben:Das einfache Anführungszeichen (') kann wie folgt als Zeichenfolgebegrenzer angegeben werden:
|
| coldelx | x ist ein einzelnes Zeichen, das als Spaltenbegrenzer verwendet wird. Der Standardwert ist ein Komma (,). Das angegebene Zeichen wird anstelle eines Kommas verwendet, um das Ende einer -Spalte zu signalisieren.2, 3 |
| decplusblank | Pluszeichen. Bewirkt, dass positive Dezimalwerte anstelle eines Pluszeichens (+) mit einem Leerzeichen als Präfix versehen werden. Die Standardaktion besteht darin, positive Dezimalwerte mit einem Pluszeichen zu Präfix zu setzen. |
| decptx | x ist ein einzelnes Zeichen, das anstelle des Punktes als Standarddezimalzeichen verwendet wird. Der Standardwert ist ein Punkt (.). Das angegebene Zeichen wird an Stelle eines Punkts als Dezimalzeichen verwendet.2, 3 |
| delprioritychar | Die aktuelle Standardpriorität für Begrenzer lautet: Datensatzbegrenzer, Zeichenbegrenzer, Spaltenbegrenzer. Dieser Modifikator schützt vorhandene Anwendungen, die von der älteren Priorität abhängen, indem die Priorität der Begrenzer wie folgt geändert wird: Zeichenbegrenzer, Datensatzbegrenzer, Spaltenbegrenzer. Syntax:Nehmen wir beispielsweise die folgende DEL-Datendatei:
Wird der Modifikator delprioritychar angegeben, enthält diese Datendatei nur zwei Zeilen. Der zweite < Zeilenbegrenzer > wird als Teil der ersten Datenspalte der zweiten Zeile interpretiert, während der erste und der dritte < Zeilenbegrenzer > als tatsächliche Datensatzbegrenzer interpretiert werden. Wenn dieser Änderungswert nicht angegeben wird, enthält diese Datendatei drei Zeilen, die jeweils durch einen < Zeilenbegrenzer > begrenzt werden. |
| keepblanks | Behält führende und nachfolgende Leerzeichen in den Feldern des Typs CHAR, VARCHAR, LONG VARCHAR oder CLOB bei. Ohne diese Option werden alle führenden und nachfolgenden Leerzeichen, die sich außerhalb von Zeichenbegrenzern befinden, entfernt und für alle leeren Felder wird NULL in die Tabelle eingefügt. Das folgende Beispiel veranschaulicht, wie Daten in eine Tabelle mit dem Namen TABLE1 geladen werden, wobei alle führenden und abschließenden Leerzeichen in der Datendatei beibehalten werden:
|
| nochardel | Das Ladedienstprogramm nimmt an, dass alle zwischen den Spaltenbegrenzern gefundenen Bytes Teil der Spaltendaten sind. Zeichenbegrenzer werden als Teil der Spaltendaten geparst. Diese Option sollte nicht angegeben werden, wenn die Daten mithilfe eines DB2-Datenbanksystems exportiert wurden (es sei denn, nochardel war beim Exportieren angegeben). Der Datentyp wird mitgeliefert, um Datendateien von Softwareanbietern zu unterstützen, in denen keine Zeichenbegrenzer
enthalten sind. Eine unsachgemäße Verwendung kann zu Datenverlust oder Datenbeschädigung führen. Diese Option kann nicht zusammen mit chardelx, delprioritychar oder nodoubledel angegeben werden. Diese Optionen schließen sich gegenseitig aus. |
| nodoubledel | Unterdrückt die Erkennung von doppelten Zeichenbegrenzern. |
| Änderungswert | Beschreibung |
|---|---|
| forcein | Weist das Dienstprogramm an, Daten trotz Codepageabweichungen zu akzeptieren und die Konvertierung von Codepages zu unterdrücken. Zielfelder mit fester Länge werden geprüft, um sicherzustellen, dass sie groß genug für die Daten sind. Wird nochecklengths angegeben, erfolgt keine Prüfung und es wird versucht, die einzelnen Zeilen zu laden. |
| nochecklengths | Wenn nochecklengths angegeben ist, wird versucht, jede einzelne Zeile zu laden, selbst wenn die Quellendaten eine Spaltendefinition haben, die die Größe der Zielspaltentabelle überschreitet. Solche Zeilen können erfolgreich geladen werden, wenn die Quellendaten durch die Codepagekonvertierung verkleinert werden. 4-Byte-EUC-Daten in der Quelle können z. B. auf 2-Byte-DBCS-Daten im Ziel verkleinert werden und benötigen dann nur noch den halben Platz. Diese Option ist besonders nützlich, wenn bekannt ist, dass die Quellendaten trotz nicht übereinstimmender Spaltendefinitionen in allen Fällen passen. |
Hinweise
- Anführungszeichen (") um die Datumsformatzeichenfolge sind obligatorisch. Feldtrennzeichen dürfen die folgenden Zeichen nicht enthalten: a-z, A-Z und 0-9. Das Feldtrennzeichen darf nicht mit dem Zeichenbegrenzer oder Feldbegrenzer im DEL-Dateiformat identisch sein. Ein Feldtrennzeichen ist optional, wenn die Start- und Endpositionen eines Elements eindeutig sind. Aufgrund der variablen Länge der Einträge kann es zu Mehrdeutigkeiten kommen, wenn (abhängig vom Modifikator) Elemente wie D, H, M oder S verwendet werden.Bei Zeitmarkenformaten ist Vorsicht geboten, um Mehrdeutigkeiten zwischen den Monats-und Minutendeskriptoren zu vermeiden, da beide den Buchstaben M verwenden. Ein Monatsfeld muss neben anderen Datumsfeldern liegen. Ein Minutenfeld muss an andere Zeitfelder angrenzen. Es folgen einige mehrdeutige Zeitmarkenformate:
In mehrdeutigen Fällen gibt das Dienstprogramm eine Fehlernachricht aus und die Operation schlägt fehl."M" (could be a month, or a minute) "M:M" (Which is which?) "M:YYYY:M" (Both are interpreted as month.) "S:M:YYYY" (adjacent to both a time value and a date value)Es folgen einige eindeutige Zeitmarkenformate:"M:YYYY" (Month) "S:M" (Minute) "M:YYYY:S:M" (Month....Minute) "M:H:YYYY:M:D" (Minute....Month)Einige Zeichen, wie z. B. doppelte Anführungszeichen und umgekehrte Schrägstriche, müssen mit Escapezeichen versehen werden (z. B. \).
- Für die Dateitypmodifikatoren chardel, coldel oder decpt angegebene Zeichenwerte müssen in der Codepage der Quellendaten angegeben werden.Der Zeichencodepunkt (anstelle des Zeichensymbols) kann über die Syntax xJJ oder 0xJJ angegeben werden, wobei JJ die hexadezimale Darstellung des Codepunkts ist. Verwenden Sie beispielsweise eine der folgenden Anweisungen, um das Zeichen # als Spaltenbegrenzer anzugeben:
... modified by coldel# ... ... modified by coldel0x23 ... ... modified by coldelX23 ... - In
Aspekte von Begrenzern beim Versetzen von Daten
werden Einschränkungen aufgelistet, die für die Zeichen gelten, die zum Überschreiben von Begrenzern verwendet werden können. - Das Ladedienstprogramm gibt keine Warnung aus, wenn versucht wird, nicht unterstützte Dateitypen mit der Option MODIFIED BY zu verwenden. Wenn dies versucht wird, schlägt die Ladeoperation fehl und es wird ein Fehlercode zurückgegeben.
- Bei Angabe mehrerer Modifikatoren mit dem Suffix ignore, include, missing oder override werden die Modifikatoren in der angegebenen Reihenfolge angewendet. In der folgenden Anweisung werden Daten für implizit verdeckte Spalten, die keine Identitätsspalten sind, in die Eingabedaten eingeschlossen. Für die Daten aller Identitätsspalten, unabhängig davon, ob diese implizit verdeckt sind, gilt dies nicht.
Wird die Reihenfolge der Dateitypmodifikatoren in der folgenden Anweisung jedoch geändert, bedeutet dies, dass Daten für alle implizit verdeckten Spalten (einschließlich verdeckter Identitätsspalten) in die Eingabedaten eingeschlossen werden. Bei Daten für Identitätsspalten, die nicht implizit verdeckt sind, ist dies nicht der Fall.db2 load from delfile1 of del modified by implicitlyhiddeninclude identitymissing insert into table1db2 load from delfile1 of del modified by identitymissing implicitlyhiddeninclude insert into table1
| codepage=N | usegraphiccodepage | LOAD-Verhalten |
|---|---|---|
| Fehlt | Fehlt | Es wird angenommen, dass alle in der Datei enthaltenen Daten in der Datenbankcodepage und nicht in der Anwendungscodepage vorliegen, selbst wenn die Option CLIENT angegeben ist. |
| Vorhanden | Fehlt | Es wird angenommen, dass alle Daten in der Datei in der Codepage N vorliegen.Warnung: Grafikdaten werden beim Laden in die Datenbank beschädigt, wenn |
| Fehlt | Vorhanden | Es wird angenommen, dass Zeichendaten in der Datei in der Datenbankcodepage vorliegen, selbst wenn die Option CLIENT angegeben ist. Es wird angenommen, dass Grafikdaten in der Codepage der Datenbankgrafikdaten vorliegen, selbst wenn die Option CLIENT angegeben ist. Bei einer Einzelbyte-Datenbankcodepage wird angenommen, dass alle Daten in der Datenbankcodepage vorliegen. Warnung: Grafikdaten werden beim Laden in die Datenbank beschädigt. |
| Vorhanden | Vorhanden | Es wird angenommen, dass Zeichendaten in der Codepage N vorliegen. Es wird angenommen, dass Grafikdaten in der Grafikcodepage N vorliegen.Wenn Warnung: Grafikdaten werden beim Laden in die Datenbank beschädigt, wenn |
