BINILOAD kann Daten aus CSV-Dateien lesen, die von BOUTLOAD oder anderen Tools nach den Regeln für das CSV-Dateiformat erstellt wurden.
Eine von BOUTLOAD erzeugte Eingabedatei im CSV-Format kann Zeilen mit den folgenden Informationen enthalten:
(1) BOUTLOAD;CSV V1.20;2018-01-16;07:45:27;
(2) DBNAME;DATABASE NAME;BINICSV;
(3) INFO01;RECORD NAME;REC-001;
(4) INFO02;RECORD REF;2;
(5) INFO03;REALM NAME;AREA1
(6) INFO04;REALM REF;3
(7) FIELDS;DB Key Ref;DB Key RSQ;Member SYS-1;Owner DB Key Ref S1;Owner DB Key RSQ S1;R1;R2;
(8) RECORD;2;1;Y;3;2;”AAA”;1;
Zeile (1) kann den Namen des BOUTLOAD Dienstprogramms, die zugehörige Ausgabeformat-Version des Dienstprogramms und Datum und Uhrzeit der Erstellung der CSV-Ausgabe enthalten.
Die nächsten Zeilen (2) – (6) enthalten den Datenbanknamen, den Satznamen und die Satzart. Wenn der Realm-Name angegeben wurde, dann enthält die Kopfzeile auch den Realm-Namen und die Realm-Nummer.
Die Zeilen (1)-(6) sind in der CSV-Datei optional und werden während des Ladens mit BINILOAD ignoriert.
Die Kopfzeile (7) und die Inhaltszeile (8) sind verbindlich, die Kontrollfelder mit den Namen FIELDS und RECORD sind optional.
Die Feldnamen in der Kopfzeile sollten den folgenden Namenskonventionen entsprechen:
- “DB Key Ref” und “DB Key RSQ” – Feldnamen für den Datenbankschlüssel des Satzes
- “Member set-name” – Feldname für ein ein Byte langes Feld mit dem Inhalt.
Y = Member, der in den SYSTEM-Set set-name eingefügt wurde.
N = Member, der nicht in den SYSTEM-Set set-name eingefügt wurde.
(für alle singulären Sets, in denen der Satz ein Member ist, außer für Member vom Typ MANDATORY AUTOMATIC)
- “Owner DB Key Ref set-name” und “Owner DB Key RSQ set-name” - Feldnamen für den Datenbankschlüssel des Owners in set-name.
- Die Feldnamen entsprechend des Benutzerschemas;
- Area ref - im Falle eines Satztyps, der an die Realms verteilt wird. wenn seine Sätze von multiplen Realms kopiert werden.
Die einzelnen Werte werden durch Semikolon (";") getrennt.
Die Reihenfolge der Werte in der Inhaltszeile (8) muss mit der Reihenfolge der Felder in der Kopfzeile (7) übereinstimmen.
Die Felder in der CSV-Datei können in beliebiger Reihenfolge angeordnet sein.
Die korrekte Reihenfolge der Felder wird durch die Feldnamen in der Kopfzeile bestimmt.
Alle alphanumerischen Werte in der CSV-Datei müssen immer in doppelte Anführungszeichen eingeschlossen werden, da alphanumerische Werte einige Zeichen wie Trennzeichen (";"), Zeilenumbrüche oder doppelte Anführungszeichen enthalten können. Wenn ein Wert ein eingebettetes (doppeltes) Anführungszeichen enthält, dann muss dieses doppelte Anführungszeichen durch zwei (doppelte) Anführungszeichen repräsentiert werden.
Die Inhalte der Felder werden in denjenigen Typ konvertiert, der für diese Felder in der Schema-DDL definiert wurde und werden in der Datenbank im korrekten Format gespeichert.
In dem Fall, dass aufgrund eines falschen Wertes in der CSV-Datei ein Feldinhalt nicht in den Feldtyp konvertiert werden kann, wird der Fehler 908 ausgegeben. Der aktuelle Satz wird nicht gespeichert und BINILOAD setzt die Verarbeitung mit der nächsten Zeile der CSV-Datei fort.
Fehlt ein Feld des DB-Satzes in der CSV-Datei, so füllt BINILOAD das Feld mit dem Defaultwert auf (X’00’ oder X’40’, abhängig vom Datentyp).
Ist ein Feld in der CSV-Datei vorhanden, das im DB-Satztyp nicht existiert und das auch nicht einem Feld des Systeminformationsteils zugeordnet werden kann (wie ‘DB Key Ref’, ‘DB Key RSQ, ‘DB Key Ref set-name’, ‘DB Key RSQ set-name’, ‘Member set-name’), dann weigert sich BINILOAD, die CSV-Datei zu laden.
Die Eingabedatei kann durch BOUTLOAD oder ein beliebiges anderes Tool erstellt werden. Die CSV-Eingabedatei kann eine SAM-Datei oder eine ISAM-Datei (EDT-Format) sein, die Sätze verschiedener Länge im variablen Satzformat (RECFORM=V) enthält.
Der Name der Eingabedatei wird in der INPUT-FILE-Anweisung angegeben.
Um Daten aus einer Eingabedatei im CSV-Format zu laden, muss der DBCOM verfügbar sein.
Am Ende dieses Kapitels finden Sie ein Beispiel für eine BINILOAD-Kommandofolge zum Laden von Daten aus einer Eingabedatei im CSV-Format.