Bei der Mehrzahl der Loader-Kommandos zum Exportieren und Importieren können Sie angeben, welchen Datentyp die jeweiligen Feldwerte im Datenstrom haben bzw. haben sollen.
Es werden datenbankinterne und externe Datentypen unterschieden.
● Datenbankinterne Datentypen
Datenbankinterne Datentypen sind
die für die Spalten der Datenbanktabelle definierten Datentypen.
Eine Erläuterung aller datenbankinternen Datentypen finden Sie im SQL-Referenzhandbuch, Datentyp
(data_type).
● Externe Datentypen
Externe Datentypen sind die
Datentypen, in die der Loader die datenbankinternen Datentypen beim
Exportieren von Anwendungsdaten umwandeln kann bzw. die der Loader beim
Importieren in datenbankinterne Datentypen umwandeln kann.
Der externe Datentyp
kann für jeden zu exportierenden oder importierenden Feldwert in den Kommandos
zum Exportieren oder Importieren mit dem Syntaxelement field_type angegeben
werden.
Die Spezifikation der Datentypen gibt dem Loader an, wie die Daten des Datenstroms zu interpretieren sind.
● Beim Exportieren von Anwendungsdaten aus einer Tabelle werden die datenbankinternen Datentypen in die angegebenen externen Datentypen konvertiert und die entsprechenden Spaltenwerte exportiert.
● Beim Importieren von Anwendungsdaten in eine Tabelle werden die angegebenen externen Datentypen in datenbankinterne Datentypen konvertiert und die entsprechenden Spaltenwerte einer Tabelle importiert.
Der externe Datentyp und der entsprechende datenbankinterne Datentyp des Spaltenwerts in der Zieltabelle müssen nicht notwendigerweise übereinstimmen.
Siehe auch:
<field_type> ::=
/* empty */ | CHAR | DECIMAL [(<unsigned_integer>)]
| INTEGER | REAL | ZONED [(<unsigned_integer>)]
/* empty */ |
Das Datenfeld wird als Datentyp CHAR gelesen oder ausgegeben. Das Lesen bzw. die Ausgabe im CHAR-Datentyp ist für jedes datenbankinterne Spaltenformat möglich. |
CHAR |
Je nach Rechner ASCII-, UCS2- oder UTF8-codiert, max. 254 Bytes lang |
DECIMAL |
Gepackt dezimal: eine Ziffer pro Halbbyte, Vorzeichen im am weitesten rechts stehenden Halbbyte, 1 bis 10 Bytes lang, max. 18 Ziffern, die Stellung des gedachten Dezimalpunktes wird vom Typ der Tabellenspalte abgeleitet |
DECIMAL(<unsigned_integer>) |
unsigend_integer: Anzahl der Stellen rechts vom gedachten Dezimalpunkt |
INTEGER |
Binär codiert (rechnerspezifisch), 1, 2 oder 4 Bytes lang, Vorzeichen in Bit 0, negative Werte in Zweierkomplementform |
REAL |
Gleitkommadarstellung mit Mantisse und Exponent, 4 oder 8 Bytes lang, in der rechnerspezifischen Darstellung |
ZONED |
Gezont dezimal: zulässig ist das /370 Zoned Data Format, die Stellung des gedachten Dezimalpunktes wird vom Typ der Tabellenspalte abgeleitet |
ZONED(<unsigned_integer>) |
unsigend_integer: Anzahl der Stellen rechts vom gedachten Dezimalpunkt |
IMPORT TABLE hotel.reservation
DATA INSTREAM 'reservation_fwv.data' FWV BINARY
rno 01-04 INTEGER
cno 05-08 INTEGER
hno 09-12 INTEGER
type 13-18 CHAR
arrival 19-28 CHAR
departure 29-38 CHAR
Die Datenbanktabelle RESERVATION fordert für die Werte in den Spalten RNO, CNO und HNOden datenbankinternen Datentyp FIXED.
Das IMPORT TABLE-Kommando definiert für diese Spalten den externen Datentyp INTEGER. Die Daten der Spalten RNO, CNO und HNO werden beim Import in den datenbankinternen Datentyp FIXED konvertiert.
IMPORT TABLE room
DATA INSTREAM 'room_fwv_binary.data' FWV BINARY
hno 01-05
type 06-11
free 12-19 INTEGER HEX
price 20-27 INTEGER HEX
Das IMPORT TABLE-Kommando definiert für die Spalten FREE und PRICE als externen Datentyp hexadezimale Werte. Das wird durch die zusätzlichen Spezifikation HEX erreicht.
Wenn für einen Feldwert kein externer Datentyp angegeben ist, wählt der Loader als Vorschlagswert den Datentyp CHAR für diesen Feldwert aus. Für den Fall, dass der Feldwert nicht den Datentyp CHAR hat bzw. der Datentyp CHAR nicht gewünscht ist, ist die Angabe des Datentyps daher zwingend erforderlich.
Alle numerischen externen Datentypen (INTEGER, REAL, DECIMAL, ZONED) werden als Binärwerte interpretiert. Sie sind in die datenbankinternen Datentypen (FIXED, SMALLINT, INTEGER, FLOAT) beliebig konvertierbar.
● Daten des Datentyps INTEGER werden vom Loader grundsätzlich als vorzeichenbehaftete Werte interpretiert. Ihre Darstellung in einem Datenstrom kann mit Hilfe des Syntaxelements int_spec angepasst werden.
● Daten des Datentyps REAL sind in der rechnerspezifischen Form codiert und können nicht ohne zusätzliche Konvertierung zwischen verschiedenen Betriebssystemen und Rechnerplattformen transportiert werden.
Feldwerte mit dem externen Datentyp CHAR sind Klartextwerte, d.h. diese Werte bestehen aus lesbaren Zeichen.
● Klartextwerte können in unterschiedlichen Ausprägungen vorliegen: ASCII, UCS2 oder UTF8 (Code-Spezifikation).
● Für Klartextwerte, die Datum, Zeit oder einen Zeitstempel darstellen, können deren Datenformate (Datums-, Zeit-, Zeitstempelangabe) angegeben werden.
Diese Datenformate können in Kommandos zum Exportieren und Importieren als Verarbeitungsspezifikation für den Datenstrom angegeben werden.
Klartextwerte können für Spalten jedes beliebigen datenbankinternen Datentyps als Eingabe verwendet und in diesen konvertiert werden. Wenn Klartextwerte in numerische Spalten importiert werden sollen, müssen die Werte auch als Zahl interpretierbar sein.
Sie können einen externen Datentyp mit der zusätzlichen Spezifikation HEX (siehe dazu: Spaltenbeschreibung, Ausgabespalte) als hexadezimalen Wert beschreiben.
Damit haben Sie die Möglichkeit, alle Datentypen auch hexadezimal codiert zu exportieren oder zu importieren. Im Ergebnis wird jedes Byte der Daten durch zwei Hexadezimalziffern repräsentiert. Jeder Wert im Datenstrom belegt dann doppelt soviel Platz wie der Wert des gleichen Datentyps ohne die Spezifikation als HEX-Wert.
Der Loader kann numerische Datentypen ineinander umwandeln, falls erforderlich. Das Lesen bzw. die Ausgabe im externen Datentyp CHAR ist für jeden datenbankinternen Datentyp möglich.
●
Beim
Exportieren von Daten aus einer Tabelle werden die datenbankinternen
Datentypen in die angegebenen externen Datentypen konvertiert und die
entsprechenden Spaltenwerte exportiert.
Die datenbankinternen Datentypen INT[EGER], FIXED und SMALLINT können in die
externen Datentypen DECIMAL, INTEGER, REAL oder ZONED überführt werden.
Der datenbankinternen Datentyp FLOAT kann in die externen Datentypen
CHAR[ACTER] oder REAL überführt werden.
●
Beim
Importieren von Daten in eine Tabelle werden die angegebenen externen Datentyp
in datenbankinterne Datentypen konvertiert und die entsprechenden Spaltenwerte
einer Tabelle importiert.
Die externen Datentypen DECIMAL, INTEGER, REAL und ZONED können in die
datenbankinternen Datentypen INTEGER, FIXED, FLOAT oder SMALLINT überführt
werden.
Siehe auch: