Zu den Deskriptorbereichsfeldern gehören das Feld COUNT, das pro Deskriptorbereich einmal vorhanden ist und die Felder der einzelnen Einträge.
Jeder Eintrag besteht aus folgenden Feldern:
REPETITIONS
TYPE
DATETIME_INTERVAL_CODE
PRECISION
SCALE
LENGTH
INDICATOR
DATA
OCTET_LENGTH
NULLABLE
NAME
UNNAMED
Im Folgenden finden Sie eine detaillierte Beschreibung der einzelnen Felder.
Feld COUNT
Das Deskriptorbereichsfeld COUNT enthält einen Wert für die Anzahl der verwendeten bzw. der benötigten Einträge.
Ist bei einer DESCRIBE-Anweisung die Anzahl der benötigten Einträge größer als die festgelegte Maximalanzahl von Einträgen, wird nur das COUNT-Feld auf die benötigte Anzahl gesetzt. Alle anderen Felder werden nicht belegt.
SQL-Datentyp: SMALLINT
Felder eines Eintrags
Nicht alle Felder sind bei jedem Eintrag belegt. Unbelegte Felder haben einen undefinierten Wert.
Die Felder sind im Folgenden in alphabetischer Reihenfolge beschrieben.
DATA
Nur definiert, wenn der Wert im Feld INDICATOR größer oder gleich 0 ist:
Wert des Eintrags.
SQL-Datentyp: bestimmt durch die Felder TYPE, LENGTH, PRECISION, SCALE und DATETIME_INTERVAL_CODE
DATETIME_INTERVAL_CODE
Nur bei Zeit-Datentypen:
Datentyp des Eintrags.
DATETIME_INTERVAL_CODE | SQL-Datentyp |
1 | DATE |
2 | TIME |
3 | TIMESTAMP |
Tabelle 1: Deskriptorbereichsfeld DATETIME_INTERVAL_CODE
SQL-Datentyp: SMALLINT
INDICATOR
Angaben zum Wert des Eintrags:
< 0 > 0 | Wert des Eintrags ist der NULL-Wert Originallänge einer alphanumerischen Zeichenkette oder einer National-Zeichenkette, |
0 | sonst |
SQL-Datentyp: SMALLINT
LENGTH
Nur bei alphanumerischen Datentypen, National-Datentypen und Zeit-Datentypen:
Länge des SQL-Datentyps in Zeichen bzw. bei National-Datentypen in Code Units.
LENGTH | bei SQL-Datentyp |
länge | CHAR(länge) |
max | VARCHAR(max) |
cu_länge | NCHAR(cu_länge) |
cu_max | NVARCHAR(cu_max) |
10 | DATE |
12 | TIME(3) |
23 | TIMESTAMP(3) |
Tabelle 2: Deskriptorbereichsfeld LENGTH
SQL-Datentyp: SMALLINT
NAME
Spaltenname, wenn sich der Eintrag auf eine Spalte bezieht, sonst intern verwendeter Spaltenname.
SQL-Datentyp: CHAR(n) oder VARCHAR(n) mit n >= 128
NULLABLE
Angabe, ob der Wert des Eintrags der NULL-Wert sein kann.
1 0 | Wert kann der NULL-Wert sein sonst |
SQL-Datentyp: SMALLINT
OCTET_LENGTH
Maximaler Speicherplatzbedarf des durch die Felder TYPE, LENGTH, PRECISION, SCALE und DATETIME_INTERVAL_CODE bestimmten Datentyps in Bytes. Wenn diese Felder keinen korrekten SQL-Datentyp angeben, ist der Wert von OCTET_LENGTH undefiniert.
Der Wert von OCTET_LENGTH ist für numerische Datentypen und Zeit-Datentypen implementationsabhängig und kann sich in Folgeversionen von SESAM/SQL ändern.
OCTET_LENGTH | bei SQL-Datentyp |
länge | CHAR(länge) |
max+2 | VARCHAR(max) |
2*cu_länge | NCHAR(cu_länge) |
2*cu_max+2 | NVARCHAR(cu_max) |
stellen+1 | NUMERIC(stellen,bruchteil) |
stellen/2+1, wenn stellen gerade | DECIMAL(stellen,bruchteil) |
4 | INTEGER |
2 | SMALLINT |
4, wenn stellen<22 | FLOAT(stellen) |
4 | REAL |
8 | DOUBLE PRECISION |
6 | DATE |
8 | TIME(3) |
14 | TIMESTAMP(3) |
Tabelle 3: Deskriptorbereichsfeld OCTET_LENGTH
SQL-Datentyp: SMALLINT
PRECISION
Nur bei numerischen Datentypen sowie TIME und TIMESTAMP:
Anzahl der Dezimal- oder Binärstellen des SQL-Datentyps.
PRECISION | bei SQL-Datentyp |
stellen | NUMERIC(stellen,bruchteil) |
stellen | DECIMAL(stellen,bruchteil) |
31 | INTEGER |
15 | SMALLINT |
stellen | FLOAT(stellen) |
21 | REAL |
53 | DOUBLE PRECISION |
3 | TIME(3) |
3 | TIMESTAMP(3) |
Tabelle 4: Deskriptorbereichsfeld PRECISION
SQL-Datentyp: SMALLINT
REPETITIONS
Dimension einer multiplen Spalte bzw. eines Aggregats.
Für jede Ausprägung einer multiplen Spalte bzw. eines Aggregats wird ein eigener Eintrag im Deskriptorbereich verwendet. Der erste Eintrag enthält im Feld REPETITIONS die Anzahl der Ausprägungen bzw. Spaltenelemente. Bei allen folgenden Einträgen ist REPETITIONS auf 1 gesetzt.
Bei einfachen Werten ist REPETITIONS auf 1 gesetzt.
SQL-Datentyp: SMALLINT
SCALE
Nur bei Ganzzahl- und Festpunktzahldatentypen:
Anzahl der Nachkommastellen des SQL-Datentyps.
SCALE | bei SQL-Datentyp |
bruchteil | NUMERIC(stellen,bruchteil) |
bruchteil | DECIMAL(stellen,bruchteil) |
0 | INTEGER |
0 | SMALLINT |
Tabelle 5: Deskriptorbereichsfeld SCALE
SQL-Datentyp: SMALLINT
TYPE
SQL-Datentyp des Eintrags:
TYPE | SQL-Datentyp |
-42 | NVARCHAR |
-31 | NCHAR |
1 | CHAR |
2 | NUMERIC |
3 | DECIMAL |
4 | INTEGER |
5 | SMALLINT |
6 | FLOAT |
7 | REAL |
8 | DOUBLE PRECISION |
9 | DATE, TIME oder TIMESTAMP |
12 | VARCHAR |
Tabelle 6: Deskriptorbereichsfeld TYPE
SQL-Datentyp: SMALLINT
UNNAMED
Angabe, ob das Feld NAME einen gültigen Spaltennamen enthält.
0 1 | NAME enthält einen Spaltennamen sonst |
SQL-Datentyp: SMALLINT