## Datentypen

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:

Spaltenbeschreibung

Ausgabespalte

Selektieren von Datensätzen

### Syntax

<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 (Klartextwert) | Je nach Rechner ASCII-, UCS2- oder UTF8-codiert, max. 254 Bytes lang
DECIMAL (Binärwert) | 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>) (Binärwert) | unsigend_integer: Anzahl der Stellen rechts vom gedachten Dezimalpunkt
INTEGER (Binärwert) | Binär codiert (rechnerspezifisch), 1, 2 oder 4 Bytes lang, Vorzeichen in Bit 0, negative Werte in Zweierkomplementform
REAL (Binärwert) | Gleitkommadarstellung mit Mantisse und Exponent, 4 oder 8 Bytes lang, in der rechnerspezifischen Darstellung
ZONED (Binärwert) | Gezont dezimal: zulässig ist das /370 Zoned Data Format, die Stellung des gedachten Dezimalpunktes wird vom Typ der Tabellenspalte abgeleitet
ZONED(<unsigned_integer>) (Binärwert) | unsigend_integer: Anzahl der Stellen rechts vom gedachten Dezimalpunkt

### Beispiele

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 HNO den 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.

### Erläuterung

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.

#### Binärwerte

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.

#### Klartextwerte

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.

#### HEX-Werte

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.

#### Umwandlung der Datentypen

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:

Datenstrom

Datenformat