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

Mindestens eine der folgenden Berechtigungen:
  • 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 die Sitzungsberechtigungs-ID keinen solchen Sicherheitskennsatz enthält, schlägt der Ladevorgang fehl und ein Fehler (SQLSTATE 5U014) wird zurückgegeben. Der Sicherheitskennsatz schützt eine geladene Zeile, wenn die LBAC-Berechtigungsnachweise der Sitzungsberechtigungs-ID das Schreiben in den Sicherheitskennsatz, der diese Datenzeile schützt, nicht zulassen. Dies ist jedoch nicht der Fall, wenn die Sicherheitsrichtlinie, die die Tabelle schützt, mit der Option RESTRICT NOT AUTHORIZED WRITE SECURITY LABEL der Anweisung CREATE SECURITY POLICY erstellt wurde. In diesem Fall schlägt der Ladevorgang fehl und ein Fehler (SQLSTATE 42519) wird zurückgegeben.

    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 usedefaults fü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

Read syntax diagramSkip visual syntax diagram LOAD CLIENT FROM ,filenameremotefilenamepipenamedevicecursorname OF filetype LOBS FROM,lob-pathXML FROM,xml-pathMODIFIED BYfile-type-modMETHODL(,col-startcol-end)NULL INDICATORS(,null-indicator-list)N(,col-name)P(,col-position)XMLPARSESTRIPPRESERVEWHITESPACEXMLVALIDATE USINGXDSDEFAULTschema-sqlidIgnore and Map parametersSCHEMAschema-sqlidSCHEMALOCATION HINTS
Ignore and Map parameters
Read syntax diagramSkip visual syntax diagramIGNORE(,schema-sqlid)MAP(,(schema-sqlid,schema-sqlid))
Read syntax diagramSkip visual syntax diagramSAVECOUNTnROWCOUNTnWARNINGCOUNTnMESSAGESmessage-fileTEMPFILES PATHtemp-pathnameINSERTREPLACEKEEPDICTIONARYRESETDICTIONARYRESETDICTIONARYONLYRESTARTTERMINATE INTOtable-name (,insert-column) FOR EXCEPTIONtable-name,12NORANGEEXCNOUNIQUEEXCSTATISTICS NO3STATISTICS USE PROFILECOPYNOYESUSE TSMOPENnum-sessSESSIONSTO,device/directoryLOADlib-nameOPENnum-sessSESSIONSNONRECOVERABLEWITHOUT PROMPTINGDATA BUFFERbuffer-sizeSORT BUFFERbuffer-sizeCPU_PARALLELISMnDISK_PARALLELISMnINDEXING MODEAUTOSELECTREBUILDINCREMENTALDEFERREDALLOW NO ACCESSALLOW READ ACCESSUSEtablespace-nameFETCH_PARALLELISMYESNOSET INTEGRITY PENDING CASCADEIMMEDIATEDEFERRED LOCK WITH FORCE SOURCEUSEREXITexecutableRedirect Input/Output parametersPARALLELIZEPARTITIONED DB CONFIGpartitioned-db-option
Redirect Input/Output parameters
Read syntax diagramSkip visual syntax diagramREDIRECTINPUT FROMBUFFERinput-bufferFILEinput-fileOUTPUT TO FILEoutput-fileOUTPUT TO FILEoutput-file
Notes:
  • 1 These keywords can appear in any order.
  • 2 Each of these keywords can appear only once.
  • 3 For column-organized tables, the default is the STATISTICS USE PROFILE parameter.

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:
  1. Die Modifikatoren dumpfile und lobsinfile und die Option XML FROM verweisen auf Dateien auf dem Server, selbst wenn das Schlüsselwort CLIENT angegeben ist.
  2. 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 codepage angegeben 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 Y in der Nullanzeigerspalte gibt an, dass die Spalten leer (NULL) sind. Jedes Zeichen außer Y in 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ährend method 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ährend method 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.
Siehe die Beispiele für die Option XMLVALIDATE im folgenden Abschnitt.
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 anyorder aktiviert ist, können beliebige n Zeilen aus der Datei geladen werden. Andernfalls werden die ersten n Zeilen geladen.
Hinweis: Der Änderungswert anyorder fü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.
Wenn die Ladeoperation gestoppt wird, weil der Schwellenwert für Warnungen erreicht wird, kann eine weitere Ladeoperation im Modus RESTART gestartet werden. Die Ladeoperation wird automatisch ab dem letzten Konsistenzpunkt fortgesetzt. Alternativ kann eine andere Ladeoperation im Modus REPLACE gestartet werden, wobei am Anfang der Eingabedatei begonnen wird.
In einer Umgebung mit partitionierten Datenbanken kann eine LOAD-Operation mehrere Lade- und Partitionierungsagenten haben. Jeder Agent hat einen WARNINGCOUNT-Wert. Wenn der Wert n auf einem einzigen Agenten erreicht wird, schlägt die LOAD-Operation fehl. Die n-Werte sind nicht kumulativ. Beispiel: Wenn n 3 ist und zwei Agenten vorhanden sind, von denen jeder einen WARNINGCOUNT von 2 hat, ist die Operation LOAD erfolgreich.
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:
  1. 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.
  2. 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:
  1. 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.
  2. 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
Wenn Sie eine Tabelle dieses Typs nach einer fehlgeschlagenen Ladeoperation wiederherstellen möchten, verwenden Sie den Parameter TERMINATE oder REPLACE.
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 
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 Spalte Int 4 fehl. 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:
  1. 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.
  2. 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 unter Daten 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.
Weitere Informationen finden Sie unter 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:
PART_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 x
Ausführliche Beschreibungen dieser Optionen finden Sie in LOAD-Konfigurationsoptionen für Umgebungen mit partitionierten Datenbanken.
RESTARTCOUNT
Veraltet.
USING directory
Veraltet.

Beispiel 1

TABLE1 enthält 5 Spalten:
  • COL1 VARCHAR 20 NOT NULL WITH DEFAULT
  • COL2 SMALLINT
  • COL3 CHAR 4
  • COL4 CHAR 2 NOT NULL WITH DEFAULT
  • COL5 CHAR 2 NOT NULL
ASCFILE1 enthält 7 Elemente:
  • 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
Datensätze:
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    Y
Mit dem folgenden Befehl wird die Tabelle aus der Datei geladen:
db2 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)
Hinweis:
  1. 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).
  2. 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.
  3. 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).
  4. 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 Y enthält, ist die Spalte NULL. Wenn Nvorhanden 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.
  5. 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.
  6. 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 Y oder N muss ebenfalls angegeben werden.

Beispiel 2 (Laden von LOBs aus Dateien)

TABLE1 enthält 3 Spalten:
  • COL1 CHAR 4 NOT NULL WITH DEFAULT
  • LOB1 LOB
  • LOB2 LOB
ASCFILE1 enthält 3 Elemente:
  • ELE1 Positionen 01 bis 04
  • ELE2 Positionen 06 bis 13
  • ELE3 Positionen 15 bis 22
Die folgenden Dateien befinden sich in /u/user1 oder /u/user1/bin:
  • 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
Datensätze in ASCFILE1:
1...5....10...15...20...25...30.
REC1 ASCFILE2 ASCFILE3
REC2 ASCFILE4 ASCFILE5
REC3 ASCFILE6 ASCFILE7
Mit dem folgenden Befehl wird die Tabelle aus der Datei geladen:
db2 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
Hinweis:
  1. Die Angabe von lobsinfile im Parameter MODIFIED BY teilt dem Ladeprogramm mit, dass alle LOB-Daten aus Dateien geladen werden sollen.
  2. 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.
  3. 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.
  4. Der Parameter LOBS FROM enthält zwei Pfade, die nach den benannten LOB-Dateien durchsucht werden, wenn diese Daten vom Ladeprogramm benötigt werden.
  5. 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)

Tabelle FRIENDS ist wie folgt definiert:
table friends "( c1 INT NOT NULL, c2 INT, c3 CHAR(8) )"
Wenn versucht wird, die folgenden Datensätze in diese Tabelle zu laden:
23, 24, bobby
, 45, john
4,, mary

wird 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.

DEL-Daten, die in einer Spalte außerhalb von Zeichenbegrenzern vorkommen, werden ignoriert, führen jedoch zur Generierung einer Warnung. Beispiel:
22,34,"bob"
24,55,"sam" sdf
Das Dienstprogramm lädt sam in die dritte Spalte der Tabelle und die Zeichen sdf werden 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)

TABLE1 enthält 4 Spalten:
  • 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.

Die Datensätze in DATAFILE1 (DEL-Format) lauten:
"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 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
Hinweis:
  1. 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
  2. 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
  3. 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
  4. 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:
    db2 load from datafile1.del of del modified by identityoverride
       replace into table2
    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.
  5. 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
Hinweis:
  1. 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.209971 bzw. 2006-05-22-19.34.14.947681 zugeordnet.
    db2 load from datafile1.del of del replace
    into table1
  2. 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
    
  3. 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
    
  4. 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.209971 bzw. 2006-05-22-19.34.14.947681 zugeordnet werden, setzen Sie den folgenden Befehl ab:
    db2 load from datafile1.del of del modified by rowchangetimestampoverride
     replace into table2

    In 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.

  5. 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)

Tabelle ABC.TABLE1 enthält 3 Spalten:
ONE INT
TWO CHAR(10)
THREE DATE
Tabelle ABC.TABLE2 enthält 3 Spalten:
ONE VARCHAR
TWO INT
THREE DATE
Durch 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.table2
Wenn 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.table1
db2 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.

Der Benutzer setzt einen Ladebefehl ohne Parsing- oder Validierungsoptionen für die XML-Spalte ab und die Daten werden erfolgreich geladen:
LOAD
FROM data.del of DEL INSERT INTO mytable

Beispiel: 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_B
  • Der 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:
      <XDS FIL='xmlfile.001.xml' />
      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.
    • Bezogen auf eine XML-Spalte, die folgende XDS enthält:
      <XDS FIL='xmlfile.002.xml' OFF='10' LEN='500' SCH='S10.SCHEMA_J' />
      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.
    • Bezogen auf eine XML-Spalte, die folgende XDS enthält:
      <XDS FIL='xmlfile.003.xml' SCH='S6.SCHEMA_F' />
      Das XML-Schema mit der SQL-Kennung "S3.SCHEMA_C" wird verwendet, um das Dokument in der Datei 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:
      <XDS FIL='xmlfile.004.xml' SCH='S11.SCHEMA_K' />
      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.
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:
    <XDS FIL='xmlfile.001.xml' />
    Das Dokument in der Datei xmlfile.001.xml wird mithilfe des XML-Schemas mit der SQL-Kennung "S2.SCHEMA_B" geprüft.
  • Bezogen auf eine XML-Spalte, die folgende XDS enthält:
    <XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
    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.
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:
    <XDS FIL='xmlfile.001.xml' />
    Das zu verwendende XML-Schema wird über das Attribut 'schemaLocation' im Dokumentinhalt bestimmt. Ist dieses Attribut nicht vorhanden, erfolgt keine Schemaprüfung.
  • Bezogen auf eine XML-Spalte, die folgende XDS enthält:
    <XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
    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.

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 generatedoverride verwenden, 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.

Tabelle 3. LOAD TERMINATE-Wörterverzeichnisverwaltung
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.
Hinweis:
  1. 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.
  2. 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.

Tabelle 4. LOAD RESTART-Wörterverzeichnisverwaltung
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.
Hinweise:
  1. 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.
  2. 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

Tabelle 5. Gültige Dateitypmodifikatoren für das Ladedienstprogramm: Alle Dateiformate
Ä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:
SET INTEGRITY FOR table-name GENERATED COLUMN
  IMMEDIATE UNCHECKED
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:
SET INTEGRITY FOR table-name IMMEDIATE CHECKED.

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:
modified by maxanalyzesize=1G
modified by maxanalyzesize=100M
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:
"CONFIDENTIAL:ALPHA:G2"
"CONFIDENTIAL;SIGMA:G2"
"TOP SECRET:ALPHA:G2"
Um diese Daten zu laden oder zu importieren, muss der Dateitypmodifikator seclabelchar verwendet werden:
LOAD FROM input.del OF DEL MODIFIED BY SECLABELCHAR INSERT INTO t1
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:
"LABEL1"
"LABEL1"
"LABEL2"
Um diese Daten zu laden oder zu importieren, muss der Dateitypmodifikator seclabelname verwendet werden:
   LOAD FROM input.del OF DEL MODIFIED BY SECLABELNAME INSERT INTO t1
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:
  • Für DEL-Dateien: Zwei benachbarte Spaltenbegrenzer (",,") oder zwei benachbarte Spaltenbegrenzer, die durch eine beliebige Anzahl von Leerzeichen (", ,") voneinander getrennt sind, werden für einen Spaltenwert angegeben.
  • Für DEL- oder ASC-Dateien: Eine Zeile weist nicht genügend Spalten auf oder ist nicht lang genug für die ursprüngliche Spezifikation. Bei ASC-Dateien werden Nullspaltenwerte nicht explizit als fehlend betrachtet und es wird kein Standardwert für Nullspaltenwerte ersetzt. Nullspaltenwerte werden für numerische Spalten sowie Datums-, Zeit- und Zeitmarkenspalten ausschließlich durch Leerzeichen dargestellt oder durch Verwendung von NULL INDICATOR für eine Spalte eines beliebigen Typs, um anzuzeigen, dass die Spalte NULL ist.
Wird diese Option nicht angegeben und enthält eine Quellenspalte keine Daten für eine Zeileninstanz, wird eine der folgenden beiden Aktionen ausgeführt:
  • Bei DEL/ASC-Dateien: Wenn die Spalte Nullwerte enthalten kann, wird NULL geladen. Wenn die Spalte keine Nullwerte enthalten darf, weist das Dienstprogramm die Zeile zurück.
Tabelle 6: Gültige Dateitypmodifikatoren für das Ladedienstprogramm: ASCII-Dateiformate (ASC/DEL)
Ä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:
  • Bei reinem DBCS (Grafik), gemischtem DBCS und EUC sind Begrenzer auf den Bereich von x00 bis x3F (jeweils einschließlich) beschränkt.
  • Bei DEL-Daten, die in einer EBCDIC-Codepage angegeben werden, sind die Begrenzer nicht unbedingt mit den DBCS-Startzeichen und -Endezeichen identisch.
  • nullindchar muss Symbole angeben, die im ASCII-Standardzeichensatz zwischen den Codepunkten x20 und x7F enthalten sind. Dies gilt für ASCII-Symbole und -Codepunkte. EBCDIC-Daten können die entsprechenden Symbole verwenden, auch wenn sich die Codepunkte unterscheiden.

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:
YYYY - Year (four digits ranging from 0000 - 9999)
M    - Month (one or two digits ranging from 1 - 12)
MM   - Month (two digits ranging from 01 - 12;
         mutually exclusive with M)
D    - Day (one or two digits ranging from 1 - 31)
DD   - Day (two digits ranging from 01 - 31;
         mutually exclusive with D)
DDD  - Day of the year (three digits ranging
         from 001 - 366; mutually exclusive
         with other day or month elements)
Jedem Element, das nicht angegeben ist, wird der Standardwert 1 zugewiesen. Es folgen einige Beispiele für Datumsformate:
"D-M-YYYY"
"MM.DD.YYYY"
"YYYYDDD"
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:
db2 load from data of del
   modified by dumpfile = /u/user/filename
   insert into table_name

Die Datei wird vom Instanzeigner erstellt und gehört diesem. Verwenden Sie zum Überschreiben der Standarddateiberechtigungen den Dateitypmodifikator dumpfileaccessall.

Hinweis:
  1. In einer Umgebung mit partitionierten Datenbanken sollte der Pfad lokal zur ladenden Datenbankpartition angegeben werden, sodass gleichzeitig ablaufende Ladeoperationen nicht versuchen, in dieselbe Datei zu schreiben.
  2. Der Inhalt der Datei wird in einem asynchronen gepufferten Modus auf die Platte geschrieben. Im Falle einer fehlgeschlagenen oder unterbrochenen Ladeoperation ist die Anzahl der auf Platte festgeschriebenen Datensätze nicht mit Sicherheit bekannt und die Konsistenz kann nach LOAD RESTART nicht gewährleistet werden. Nur bei einer Ladeoperation, die in einem einzigen Arbeitsgang gestartet und beendet wird, kann angenommen werden, dass die Datei vollständig ist.
  3. Wenn die angegebene Datei bereits vorhanden ist, wird sie nicht erneut erstellt, sondern abgeschnitten.
dumpfileaccessall Erteilt beim Erstellen einer Speicherauszugsdatei Lesezugriff für 'OTHERS'.
Dieser Dateitypmodifikator ist nur in den folgenden Fällen gültig:
  1. Er wird in Verbindung mit dem Dateitypmodifikator dumpfile verwendet.
  2. Der Benutzer verfügt über das Zugriffsrecht SELECT für die Zieltabelle des Ladevorgangs.
  3. Er wird auf einer Db2 -Serverdatenbankpartition ausgegeben, die sich auf einem UNIX-Betriebssystem befindet

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:
H     - Hour (one or two digits ranging from 0 - 12
           for a 12 hour system, and 0 - 24
           for a 24 hour system)
HH    - Hour (two digits ranging from 00 - 12
           for a 12 hour system, and 00 - 24
           for a 24 hour system; mutually exclusive
             with H)
M     - Minute (one or two digits ranging
           from 0 - 59)
MM    - Minute (two digits ranging from 00 - 59;
           mutually exclusive with M)
S     - Second (one or two digits ranging
           from 0 - 59)
SS    - Second (two digits ranging from 00 - 59;
           mutually exclusive with S)
SSSSS - Second of the day after midnight (5 digits
           ranging from 00000 - 86400; mutually
           exclusive with other time elements)
TT    - Meridian indicator (AM or PM)
Jedem nicht angegebenen Element wird der Standardwert 0 zugewiesen. Es folgen einige Beispiele für Zeitformate:
"HH:MM:SS"
"HH.MM TT"
"SSSSS"
timestampformat="x" x ist das Format der Zeitmarke in der Quellendatei.1 Gültige Zeitmarkenelemente sind:
YYYY   - Year (four digits ranging from 0000 - 9999)
M      - Month (one or two digits ranging from 1 - 12)
MM     - Month (two digits ranging from 01 - 12;
            mutually exclusive with M and MMM)
MMM    - Month (three-letter case-insensitive abbreviation for 
            the month name; mutually exclusive with M and MM)              
D      - Day (one or two digits ranging from 1 - 31)
DD     - Day (two digits ranging from 01 - 31; mutually exclusive with D)
DDD    - Day of the year (three digits ranging from 001 - 366; 
            mutually exclusive with other day or month elements)
H      - Hour (one or two digits ranging from 0 - 12
            for a 12 hour system, and 0 - 24 for a 24 hour system)
HH     - Hour (two digits ranging from 00 - 12 
            for a 12 hour system, and 00 - 24 for a 24 hour system; 
            mutually exclusive with H)
M      - Minute (one or two digits ranging from 0 - 59)
MM     - Minute (two digits ranging from 00 - 59;
            mutually exclusive with M, minute)
S      - Second (one or two digits ranging from 0 - 59)
SS     - Second (two digits ranging from 00 - 59;
            mutually exclusive with S)
SSSSS  - Second of the day after midnight (5 digits
            ranging from 00000 - 86400; mutually
            exclusive with other time elements)
U (1 to 12 times)
         - Fractional seconds(number of occurrences of U represent the 
              number of digits with each digit ranging from 0 to 9

TT     - Meridian indicator (AM or PM)
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:
   "YYYY/MM/DD HH:MM:SS.UUUUUU"

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:
YYYY-MM-DD-HH.MM.SS 
YYYY-MM-DD HH:MM:SS

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:
db2 load from delfile2 of del
    modified by timestampformat="yyyy.mm.dd hh:mm tt"
    insert into schedule
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.

Tabelle 7: Gültige Dateitypmodifikatoren für das Ladedienstprogramm: Dateiformat ASC (ASCII-Format mit universellen Zeilenbegrenzern)
Ä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:
  • Mit Ausnahme von BIGINT, INTEGER und SMALLINT wird keine Konvertierung zwischen Datentypen durchgeführt.
  • Datenlängen müssen mit den entsprechenden Zielspaltendefinitionen übereinstimmen.
  • FLOAT-Daten müssen im IEEE-Gleitkommaformat vorliegen.
  • Unabhängig von der Plattform, auf der die Ladeoperation ausgeführt wird, wird angenommen, dass binäre Daten in der Ladequellendatei als Big Endian vorliegen.

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.2

Bei 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 N angegeben ist, wird n ebenfalls als Nullanzeiger erkannt.

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:
+ = 0xC 0xA 0xE 0xF
 - = 0xD 0xB

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:
+ = 0xC 0xA 0xE 0xF 0x3
- = 0xD 0xB 0x7

Unterstützte Werte für Ziffern sind 0x0 bis 0x9.

Unterstützte Werte für Zonen sind 0x3 und 0xF.

Tabelle 8. Gültige Dateitypmodifikatoren für das Ladedienstprogramm: Dateiformat DEL (ASCII-Format ohne universelle Zeilenbegrenzer)
Ä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:
modified by chardel""
Das einfache Anführungszeichen (') kann wie folgt als Zeichenfolgebegrenzer angegeben werden:
modified by chardel''
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:
db2 load ... modified by delprioritychar ...
Nehmen wir beispielsweise die folgende DEL-Datendatei:
"Smith, Joshua",4000,34.98<row delimiter>
"Vincent,<row delimiter>, is a manager", ...
... 4005,44.37<row delimiter>

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:
db2 load from delfile3 of del
   modified by keepblanks
   insert into table1
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.
Tabelle 9. Gültige Dateitypmodifikatoren für das Ladedienstprogramm: Dateiformat IXF
Ä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

  1. 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:
    "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)
    In mehrdeutigen Fällen gibt das Dienstprogramm eine Fehlernachricht aus und die Operation schlägt fehl.
    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. \).

  2. 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 ...
  3. 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.
  4. 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.
  5. 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.
    db2 load from delfile1 of del modified by 
       implicitlyhiddeninclude identitymissing insert into table1 
    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 
       identitymissing implicitlyhiddeninclude insert into table1 
Tabelle 10: Verhalten von LOAD bei Verwendung von 'codepage' und 'usegraphiccodepage'
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 N eine Einzelbyte-Codepage ist.

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 N eine Einzelbyte- oder Doppelbyte-Codepage ist, wird angenommen, dass alle Daten in der Codepage N vorliegen.

Warnung: Grafikdaten werden beim Laden in die Datenbank beschädigt, wenn N eine Einzelbyte-Codepage ist.