Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

DESCRIBE - Datentypen von Ein- und Ausgabewerten abfragen

DESCRIBE schreibt Datentypbeschreibungen von Eingabe- bzw. Ausgabewerten einer dynamisch formulierten Anweisung bzw. Cursorbeschreibung in einen SQL-Deskriptorbereich..

Der SQL-Deskriptorbereich muss vorher mit ALLOCATE DESCRIPTOR angelegt worden sein.

Die dynamisch formulierte Anweisung bzw. Cursorbeschreibung muss vor Ausführung der DESCRIBE-Anweisung mit PREPARE vorbereitet worden sein.



DESCRIBE [INPUT | OUTPUT] anweisungsbezeichner USING SQL DESCRIPTOR GLOBAL deskriptor



INPUT

Anzahl von Eingabewerten einer dynamisch formulierten Anweisung bzw. Cursorbeschreibung bestimmen und Datentyp der Eingabewerte beschreiben.


OUTPUT

Anzahl von Ausgabewerten einer dynamisch formulierten SELECT-Anweisung bzw. Cursorbeschreibung bestimmen und Datentyp der Ausgabewerte beschreiben.


anweisungsbezeichner

Dynamisch formulierte Anweisung bzw. Cursorbeschreibung.


deskriptor

Name des SQL-Deskriptorbereichs, in den die Typbeschreibungen geschrieben werden (siehe „Belegung der Deskriptorbereichsfelder").

Sie können den Namen als alphanumerisches Literal oder mit einer alphanumerischen Benutzervariable angeben.

Diesen SQL-Deskriptorbereich können Sie nicht verwenden, wenn ein geöffneter Cursor mit eingeschaltetem Schubmodus existiert (siehe Abschnitt „Pragma PREFETCH" ), und für diesen Cursor eine Anweisung FETCH NEXT... ausgeführt wurde, deren INTO-Klausel den Namen desselben SQL-Deskriptorbereichs enthält.

Belegung der Deskriptorbereichsfelder

Die Felder des SQL-Deskriptorbereichs werden wie folgt belegt:

Das Feld COUNT wird mit der Anzahl der Eingabewerte (DESCRIBE INPUT) bzw. Ausgabewerte (DESCRIBE OUTPUT) belegt.

Bei DESCRIBE INPUT berechnet sich die Anzahl wie folgt aus der Anzahl der Platzhalter der dynamisch formulierten Anweisung bzw. Cursorbeschreibung:

Anzahl der Platzhalter für einfache Werte +
Anzahl der Aggregatselemente von jedem Platzhalter für Aggregate

Bei DESCRIBE OUTPUT berechnet sich die Anzahl wie folgt aus der Anzahl der Ergebnisspalten der dynamisch formulierten SELECT-Anweisung bzw. Cursorbeschreibung:

Anzahl der einfachen Ergebnisspalten +
Anzahl der Spaltenelemente von jeder multiplen Ergebnisspalte

Ist die berechnete Anzahl 0, werden keine weiteren Deskriptorbereichsfelder gesetzt.

Ist die Anzahl größer als die bei ALLOCATE DESCRIPTOR angegebene Maximalanzahl der Einträge, werden keine weiteren Felder gesetzt und ein entsprechender SQLSTATE gesetzt.

Ansonsten werden folgende Felder des SQL-Deskriptorbereichs belegt.

    • Für jeden Eingabewert bei DESCRIBE INPUT:

      • TYPE

      • LENGTH (bei alphanumerischem Datentyp, National-Datentyp und Zeit-Datentyp)

      • PRECISION (bei numerischem Datentyp sowie bei TIME und TIMESTAMP)

      • SCALE (bei NUMERIC, DECIMAL, INTEGER und SMALLINT)

      • DATETIME_INTERVAL_CODE (bei Zeit-Datentyp)

      • OCTET_LENGTH

      • NULLABLE mit dem Wert 1

      • REPETITIONS

      • UNNAMED mit dem Wert 1

    • Für jeden Ausgabewert bei DESCRIBE OUTPUT:

      • TYPE

      • LENGTH (bei alphanumerischem Datentyp, National-Datentyp und Zeit-Datentyp)

      • PRECISION (bei numerischem Datentyp sowie bei TIME und TIMESTAMP)

      • SCALE (bei NUMERIC, DECIMAL, INTEGER und SMALLINT)

      • DATETIME_INTERVAL_CODE (bei Zeit-Datentyp)

      • OCTET_LENGTH

      • NULLABLE

      • REPETITIONS

      • NAME

      • UNNAMED

Mit welchen Werten die angegebenen Felder belegt werden, ist im Abschnitt „Deskriptorbereichsfelder" beschrieben.

Alle anderen Felder des SQL-Deskriptorbereichs sind undefiniert.


Beispiel

DESCRIBE OUTPUT cur_beschreibung

USING SQL DESCRIPTOR GLOBAL 'DESKR_BEREICH'

Siehe auch

ALLOCATE DESCRIPTOR, DEALLOCATE DESCRIPTOR, GET DESCRIPTOR, SET DESCRIPTOR